Hash md5

cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006 - 24 déc. 2004 à 14:58
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006 - 24 déc. 2004 à 17:23
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;
}

5 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
24 déc. 2004 à 16:04
Salut,
Le calcul du hash md5 a l'air bon, et ta boucle aussi (sauf qu'il manque le \0 final de la chaine, il faut le rajouter).
Revois plutot comment tu appeles ta fonction php.

Sinon pour tester les hash, il y a une dizaines de hash test dans la rfc md5.
0
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006
24 déc. 2004 à 16:15
pour le hash obtenu avec la fonction php, j'avais pris directement le hash dans ma base de donnee local. je viens d'ecrire un bout de code en php pour calculer le meme hash, voici ce que ca donne :
<?
$texte="123456";
$hash=md5(texte);
echo $hash;
?>


voila ce que ca m'affiche :
1646e38a7fff5dc2ef73cb05749f6cd7

c'est etonnant qd meme
0
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006
24 déc. 2004 à 16:27
petite erreur excuser moi, c'est bien :
$hash=md5($texte);

et la en effet on retrouve lameme chose, a savoir :
e10adc3949ba59abbe56e057f20f883e
mais je trouve ca bizarre qu'avec le forum que j'utilise on ne retrouvepasla meme chose
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
24 déc. 2004 à 16:49
Salut,
ce qui est sur, c'est que les hash tests donnés dans la rfc md5 sont bons, eux.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_flatou Messages postés 92 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 22 février 2006
24 déc. 2004 à 17:23
yep, je vais etuider les fonctions utiliser par mon forum, merci d'avoir pris du temps pour mon prob
a+
0
Rejoignez-nous