SYSTÈME D'IDENTIFICATION UTILISANT MD5

Utilisateur anonyme - 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
Utilisateur anonyme
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
darkjedi Messages postés 12 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 30 août 2004
30 août 2004 à 10:54
très bon code ;)

Dark-Jedi
Utilisateur anonyme
23 août 2004 à 17:46
Juste une petite note:
pour l'authentification distante il existe un protocole (OTP pour one time password) utilisé notamment sur Hotmail.
L'inconvénient est la phase d'initialisation ou de réinitialisation de ce protocole (il faut à ce moment utiliser une connexion sécurisée (SSL ou TSL)).
C'est pas très difficile à coder et ca donne une bonne idée de l'utilisation des algos de hashage pour l'authentification.
Rejoignez-nous