Hash md5

Signaler
Messages postés
92
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
22 février 2006
-
Messages postés
92
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
22 février 2006
-
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

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
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.
Messages postés
92
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
22 février 2006

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
Messages postés
92
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
22 février 2006

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
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,
ce qui est sur, c'est que les hash tests donnés dans la rfc md5 sont bons, eux.
Messages postés
92
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
22 février 2006

yep, je vais etuider les fonctions utiliser par mon forum, merci d'avoir pris du temps pour mon prob
a+