SYSTÈME D'IDENTIFICATION UTILISANT MD5

TeLeTUbIz
Messages postés
215
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
25 septembre 2010
- 23 août 2004 à 17:46
semaj_james
Messages postés
6
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
16 janvier 2005
- 20 déc. 2006 à 17:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25602-systeme-d-identification-utilisant-md5

semaj_james
Messages postés
6
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
16 janvier 2005

20 déc. 2006 à 17:57
cela marche aussi si au lieu du scanf on utilise fgets a condition de supprimer le "\n":

if (fgets (PassEntree, sizeof PassEntree, stdin) != NULL)
{
char *p = strchr (PassEntree, '\n');
if (p)
{
*p = 0;
}
}

Sinon tres bon code. il va bien m'aider. merci

PS: "La fonction scanf() est une fonction destinée, comme le f dans son nom l'indique, aux saisies formatées et s'avère ainsi très peu adaptée aux saisies humaines qui peuvent présentées des erreurs de format, ces erreurs de formats pouvant entrainer des débordements de tableau, des boucles infinies, des perturbations sur les saisies suivantes, etc.
Il ainsi conseillé de remplacer les saisies formatées effectuées par scanf() par une lecture complète via fgets() suivie d'une analyse de la chaîne lue."
citation: http://c.developpez.com/faq/c/?page=clavier_ecran#SCREEN_scanf_fgets
semaj_james
Messages postés
6
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
16 janvier 2005

20 déc. 2006 à 17:25
En regardant de plus pres cela fonctionne si l'on fait:
strcpy(PassEntree,"message digest");
mais ne marche pas avec un scanf
semaj_james
Messages postés
6
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
16 janvier 2005

20 déc. 2006 à 17:09
Salut,

j'ai compare les differentes valeurs de http://abcdrfc.free.fr/rfc-vf/rfc1321.html.
cela fonctionne pour:
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =
d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("123456789012345678901234567890123456789012345678901234567890123456
78901234567890") = 57edf4a22be3c955ac49da2e2107b67a

mais pas pour:
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
ton code trouve: 78e731027d8fd50ed642340b7c9a63b3
qui correspond a MD5 ("message")
apparement il y a un probleme avec les espaces
TeLeTUbIz
Messages postés
215
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
25 septembre 2010

4 juin 2006 à 13:06
Salut LaetitiaVincent. Je pense à lire le code que le 'standard' MD5 a bien été respecté. Pour le vérifier, tu peux faire un programme qui teste les différentes valeurs "officielles" que tu pourra trouver ici: http://abcdrfc.free.fr/rfc-vf/rfc1321.html tout en bas de la page (avant les considérations sur la sécurité).
Normalement, tu devrais trouver les mêmes valeurs.

Bonne continuation
laetitiavincent
Messages postés
61
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2007

3 juin 2006 à 19:15
Super code très bien expliqué. Mais question : le code utilisé dans le fichier md5.cpp pour le hacher est d'origine ou tu l'as modifié ? Je te demande cela car je dois hacher des informations qui vont être comparées aux mêmes informations qui se trouvent sur un serveur et qui ont déjà été hachées, donc je me demande si je vais retrouver la même chose ???

En tout cas merci pour ton code
Afficher les 7 commentaires