scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 17 févr. 2007 à 10:58
Pourquoi certains hashs md5 sont de la forme "$1$ZWnke0$1fzDBVjUcT1Mpdd4u/T961" et non "21232f297a57a5a743894a0e4a801fc3"?
A quoi correspond la forme "$1$XXXXXXXX..."?
Suisse00
Messages postés83Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention12 octobre 2005 10 janv. 2005 à 16:06
Je crois qu'il y a une légère erreur, dans la fonction md5Crypt() pourquoi retourner un int ? Il faudrais retourner pszTxtToCrypt (char*).
Aussi sous VC++ 7 quand je démarre l'application (en débug seulement) j'obtien l'erreur : Run-Time Check Failure #2 - Stack around the variable 'szHexOutput' was corrupted
gfag
Messages postés2Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention 5 mai 2004 5 mai 2004 à 15:29
En fait je n'avais récupéré que le code présenté en début de page, je n'avais pas vu le lien de téléchargement qui se trouvait à sa gauche.
Pour ceux qui auraient rencontré le même problème, sachez que le lien s'appelle "Téléchargez le zip" et se situe juste à gauche de la partie nommée "Contenu de cette fiche".
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 5 mai 2004 à 14:29
ben tu dois soit ajuster le chemin de l'incude md5.h, soit mettre le md5.h ds le bon répertoire ;) avec ts les fichiers attenant évidemment
gfag
Messages postés2Date d'inscriptionmercredi 5 mai 2004StatutMembreDernière intervention 5 mai 2004 5 mai 2004 à 11:43
Comment utiliser ce programme ?
Lorsque je le compile, le message
"fatal error C1083: Cannot open include file: 'md5.h': No such file or directory
Error executing cl.exe.
MD5.exe - 1 error(s), 0 warning(s)"
s'affiche...
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 20 avril 2004 à 17:56
ds l'exemple ci dessus la fonction prend en paramètre une char[900] ... c'est bizarre. remplace là pr qu'elle prenne une char* et un unsigned int pr la longueur de cette chaîne. après ça devrait aller non?
spiderAlpha
Messages postés3Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention20 avril 2004 20 avril 2004 à 10:31
Alors j'ai testé de copier ma AnsiString dans un char*,
puis de crypter le char*, cependant, j'obtiens toujours une erreur "Accés violation ......." , et si je modifie un tout petit peut l'exemple fournit dans le zip, je me prend une erreur " FATAL illegal VIREDEF fixup index in module......"
Alors que je ne fait que mettre une \n lors de l'affichage !!!!
le plus bizarre, c'est que si j'enléve les modifications que j'ai faites, le programme ne veut plus se compiler, l'erreur reste présente !!
Je trouve ça vraiment étrange...
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 20 avril 2004 à 07:26
Avec les AnsiString tu dois utiliser la méthode de conversion c_str() pour obtenir un pointeur sur une chaîne de type char* .
Cependant, je pense que tu ne peux pas passer cela comme, justement, un pointeur. Si la chaîne doit-être modifiée, tu dois utiliser strcpy avec, tjs, c_str() pour créer une nvlle chaîne bien char* elle. Enfin, je suis pas clair du tt, mais la clef c'est c_str(). ;-)
spiderAlpha
Messages postés3Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention20 avril 2004 19 avril 2004 à 23:36
Le code à l'air bien....
cependant, lorsque j'essais de le faire tourner avec Borland C++ Builder, je n'arrive pas à hasher une chaine d'un Edit->Text;
Quel modifications seraient à apporter à cette fonction afin qu'elles soit capable de traiter des chaines ou des char* ???
En tout cas, c'est presque parfait !!
D1m3x
Messages postés402Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention21 juillet 20051 12 déc. 2003 à 15:45
Très bonne idée mais si tu préfère le C pur utilise les fopen ... mais je te conseille quand même les fstrean.. je préfère aussi :)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 12 déc. 2003 à 14:21
oh pas de problème, tu sais te débrouiller avec les fichiers?
je te conseille d'utiliser la STD pour ça!! sur www.cplusplus.com tu as une référence sur la STL et la STD, et là ils expliquent tout sur les fstream (flux de fichiers) vrmnt, utilise ça! ;-)
petitprince77
Messages postés5Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention12 décembre 2003 12 déc. 2003 à 13:56
(ben aucun :) )
en fait ce qui te parait évident est nouveau pour moi (je débute!)
Merci
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 11 déc. 2003 à 18:01
ben pr un fichier tu charges le fichier dans une chaîne de caractère, quel est le problème ?
petitprince77
Messages postés5Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention12 décembre 2003 11 déc. 2003 à 17:33
ahhh au fait pourquoi ce code ne fonctionne pas sur win98?
quel autre alternative y aurait il?
petitprince77
Messages postés5Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention12 décembre 2003 11 déc. 2003 à 17:29
merci pour ton code D1m3x, c'est vrai que sur le net il n'y en a pas énormément!
j'aimerai obtenir le CRC d'un fichier (voir s'il a des erreurs)
Dans l'exemple c'est fait sur une chaine de caractère!
Comment faire???
merci les gars (et filles bien sur)
BombStrike
Messages postés23Date d'inscriptionlundi 1 juillet 2002StatutMembreDernière intervention27 juin 2004 25 nov. 2003 à 09:16
comme l'a dis worms, md5 est un hashage, il renvoi toujours une clé alphanumerique de 32bytes. cela monte le nombre de possibilités a 32^36 = 1532495540865888900000000000000000000000000000000000000
avant de toutes les tester, va falloir prendre son tps. son autre grand avantage est que vous ne pouvez pas le dechiffrer, cet algorithme ne sert que pour les operations de comparaisons/verification de données ( on a le vrai md5, et on compare avec le md5 de ce que nous donne l'user ).
et pour finir, md5.h est de L. Peter Deutsch <ghost@aladdin.com> Aladdin Enterprises
voila c tout :)
D1m3x
Messages postés402Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention21 juillet 20051 4 nov. 2003 à 18:49
Merci à tous pour les commentaires, et surtout à Wormstream, tu m'as encore une fois très bienj expliqué ce qu'était md5 :)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 4 nov. 2003 à 16:50
ah, excellente idée le double cryptage avec clé md5, je retiens, merci pr l'idée.
question: le md5 renvoie tjs une clef 32 bits, ou c que la "version php" qui fait ça? d'ailleurs, la "version php" (mais le md5 est il universel et invariant?) ne fait que les chiffres et les lettres de A à Z maj et minuscules. est-ce que c tjs comme ça ?
pr ma part, je l'utilise en php pour ceci: qd un utilisateur s'enregistre, je sauve son mot de passe ds la bdd crypté en md5. qd il veut s'enregistrer, je vérifie si le mot de passe entré crypté en md5 correpsond à l'enregistrement de la bdd. avantage: je ne sauve pas les mots de passe en clair ds la bdd, gain en sécurité.
WormsTeam
Messages postés4Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention 4 novembre 2003 4 nov. 2003 à 10:26
Bonjour à tous,
Pour des raisons professionnelles, je me suis penché sur l'algo MD5. Effectivement, il ne s'agit pas d'un algo de cryptage mais d'un algo de hachage. La différence c'est que cette algo fournit effectivement une "signature" sur les données qu'on lui passe en entrée et non pas un cryptage. En gros, c'est un espèce de super checksum sur ces données. Son intérêt par rapport à un checksum est qu'il n'est pas singulier donc la moindre petit modification en entrée des données donnera une valeur de la clé MD5 très différente. Grace à sa, on peut s'en servir pour savoir si des données ont été interceptées lors de leur transmission.
J'ai mis 8 à ce code parce qu'il s'agit d'un très bon exemple de l'utilisation de la bibli MD5. Pour les personnes qui veulent utiliser cet algo, cet exemple est amplement suffisant, ça ne sert à rien de rentrer plus en détail dans les méandres de celui-ci (si ce n'est que pour des raisons perso).
Une autre appli de cet algo est qu'il fournit une clé aléatoire pour un process de cryptage complet (c'est comme ça que je l'ai utilisé perso !). C'est vachement intéréssant car si vous cryptez des mêmes données deux fois de suite, votre cryptage résultant sera complétement différent.
Voilà, pour le détail.
++ tout l'monde et merci de partager vos sources
WoRmsTeAm aka RiVoIrE
D1m3x
Messages postés402Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention21 juillet 20051 1 nov. 2003 à 20:33
Ué c vrai lol, mais bon faut quand même la connaître cette lib, il n'y a pas beaucouop de code qui traître le md5 sur ce site alors c'est toujours bon à prendre :)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 31 oct. 2003 à 11:43
salut,
j'ai mis 7/10 parce que finalement, tu utilises une bib déjà existante, tu vois, comme tu as mis des !!! ds le titre de ton code (ce que tu n'aurais pas fait si tu avais lu la charte en rouge ;-)) je me suis imaginé qu ça devait être qq ch de vrmnt extraordinnaire. dommage :-(
enfin, c'est tjs bon à savoir.
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 31 oct. 2003 à 00:44
Il me semble que l'algorithme MD5 ne réalise pas réellement un cryptage du texte initial mais plutot une signature unique différente pour chaque entrée.
De plus, l'intérêt du MD5 est qu'il est imposible de trouver le texte initial à partir de la signature. Ceci permet de vérifier qu'un fichier n'a pas été altéré.
PJulot
Messages postés29Date d'inscriptiondimanche 8 juillet 2001StatutMembreDernière intervention30 octobre 2003 30 oct. 2003 à 18:02
Très bon code.
D1m3x
Messages postés402Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention21 juillet 20051 30 oct. 2003 à 13:41
17 févr. 2007 à 10:58
A quoi correspond la forme "$1$XXXXXXXX..."?
10 janv. 2005 à 16:06
Aussi sous VC++ 7 quand je démarre l'application (en débug seulement) j'obtien l'erreur : Run-Time Check Failure #2 - Stack around the variable 'szHexOutput' was corrupted
5 mai 2004 à 15:29
Pour ceux qui auraient rencontré le même problème, sachez que le lien s'appelle "Téléchargez le zip" et se situe juste à gauche de la partie nommée "Contenu de cette fiche".
5 mai 2004 à 14:29
5 mai 2004 à 11:43
Lorsque je le compile, le message
"fatal error C1083: Cannot open include file: 'md5.h': No such file or directory
Error executing cl.exe.
MD5.exe - 1 error(s), 0 warning(s)"
s'affiche...
20 avril 2004 à 17:56
20 avril 2004 à 10:31
puis de crypter le char*, cependant, j'obtiens toujours une erreur "Accés violation ......." , et si je modifie un tout petit peut l'exemple fournit dans le zip, je me prend une erreur " FATAL illegal VIREDEF fixup index in module......"
Alors que je ne fait que mettre une \n lors de l'affichage !!!!
le plus bizarre, c'est que si j'enléve les modifications que j'ai faites, le programme ne veut plus se compiler, l'erreur reste présente !!
Je trouve ça vraiment étrange...
20 avril 2004 à 07:26
Cependant, je pense que tu ne peux pas passer cela comme, justement, un pointeur. Si la chaîne doit-être modifiée, tu dois utiliser strcpy avec, tjs, c_str() pour créer une nvlle chaîne bien char* elle. Enfin, je suis pas clair du tt, mais la clef c'est c_str(). ;-)
19 avril 2004 à 23:36
cependant, lorsque j'essais de le faire tourner avec Borland C++ Builder, je n'arrive pas à hasher une chaine d'un Edit->Text;
Quel modifications seraient à apporter à cette fonction afin qu'elles soit capable de traiter des chaines ou des char* ???
En tout cas, c'est presque parfait !!
12 déc. 2003 à 15:45
12 déc. 2003 à 14:21
je te conseille d'utiliser la STD pour ça!! sur www.cplusplus.com tu as une référence sur la STL et la STD, et là ils expliquent tout sur les fstream (flux de fichiers) vrmnt, utilise ça! ;-)
12 déc. 2003 à 13:56
en fait ce qui te parait évident est nouveau pour moi (je débute!)
Merci
11 déc. 2003 à 18:01
11 déc. 2003 à 17:33
quel autre alternative y aurait il?
11 déc. 2003 à 17:29
j'aimerai obtenir le CRC d'un fichier (voir s'il a des erreurs)
Dans l'exemple c'est fait sur une chaine de caractère!
Comment faire???
merci les gars (et filles bien sur)
25 nov. 2003 à 09:16
avant de toutes les tester, va falloir prendre son tps. son autre grand avantage est que vous ne pouvez pas le dechiffrer, cet algorithme ne sert que pour les operations de comparaisons/verification de données ( on a le vrai md5, et on compare avec le md5 de ce que nous donne l'user ).
et pour finir, md5.h est de L. Peter Deutsch <ghost@aladdin.com> Aladdin Enterprises
voila c tout :)
4 nov. 2003 à 18:49
4 nov. 2003 à 16:50
question: le md5 renvoie tjs une clef 32 bits, ou c que la "version php" qui fait ça? d'ailleurs, la "version php" (mais le md5 est il universel et invariant?) ne fait que les chiffres et les lettres de A à Z maj et minuscules. est-ce que c tjs comme ça ?
pr ma part, je l'utilise en php pour ceci: qd un utilisateur s'enregistre, je sauve son mot de passe ds la bdd crypté en md5. qd il veut s'enregistrer, je vérifie si le mot de passe entré crypté en md5 correpsond à l'enregistrement de la bdd. avantage: je ne sauve pas les mots de passe en clair ds la bdd, gain en sécurité.
4 nov. 2003 à 10:26
Pour des raisons professionnelles, je me suis penché sur l'algo MD5. Effectivement, il ne s'agit pas d'un algo de cryptage mais d'un algo de hachage. La différence c'est que cette algo fournit effectivement une "signature" sur les données qu'on lui passe en entrée et non pas un cryptage. En gros, c'est un espèce de super checksum sur ces données. Son intérêt par rapport à un checksum est qu'il n'est pas singulier donc la moindre petit modification en entrée des données donnera une valeur de la clé MD5 très différente. Grace à sa, on peut s'en servir pour savoir si des données ont été interceptées lors de leur transmission.
J'ai mis 8 à ce code parce qu'il s'agit d'un très bon exemple de l'utilisation de la bibli MD5. Pour les personnes qui veulent utiliser cet algo, cet exemple est amplement suffisant, ça ne sert à rien de rentrer plus en détail dans les méandres de celui-ci (si ce n'est que pour des raisons perso).
Une autre appli de cet algo est qu'il fournit une clé aléatoire pour un process de cryptage complet (c'est comme ça que je l'ai utilisé perso !). C'est vachement intéréssant car si vous cryptez des mêmes données deux fois de suite, votre cryptage résultant sera complétement différent.
Voilà, pour le détail.
++ tout l'monde et merci de partager vos sources
WoRmsTeAm aka RiVoIrE
1 nov. 2003 à 20:33
31 oct. 2003 à 11:43
j'ai mis 7/10 parce que finalement, tu utilises une bib déjà existante, tu vois, comme tu as mis des !!! ds le titre de ton code (ce que tu n'aurais pas fait si tu avais lu la charte en rouge ;-)) je me suis imaginé qu ça devait être qq ch de vrmnt extraordinnaire. dommage :-(
enfin, c'est tjs bon à savoir.
31 oct. 2003 à 00:44
De plus, l'intérêt du MD5 est qu'il est imposible de trouver le texte initial à partir de la signature. Ceci permet de vérifier qu'un fichier n'a pas été altéré.
30 oct. 2003 à 18:02
30 oct. 2003 à 13:41