salut a tous
je travail sur un projet en c qui doit utiliser le hashage md5. je me suis inspiré donc de cette source (pour faire simple) :
http://www.cppfrance.com/code.aspx?ID=25062
a la compilation, aucun probleme, c'est plutot au niveau du hash genere qu'il y a un probleme.
pour la chaine "123456" j'obtiens :
e10adc3949ba59abbe56e057f20f883e
en utilisant une fonction md5 de php j'obtiens :
a2fe8b55fbd6e617ac1104f68243a6bc
d'ou ma question : pourquoi il y a une difference et comment resoudre le probleme ?
merci d'avance
ps : voici le code de mon programme C, pour information
#include <stdio.h> #include "md5.h" #include "md5.cpp"
char *md5_str(char *p) { md5_state_t state; md5_byte_t digest[16]; char *hex_output = (char *)malloc(33); int di; md5_init(&state); md5_append(&state, p, strlen(p)); md5_finish(&state, digest); for (di = 0; di < 16; di++){ sprintf(hex_output + di * 2, "%02x", digest[di]); } return hex_output; }
int main(){ char texte[]="123456"; char *hash=md5_str(texte);
printf("%s\n", hash);
return 0; } |