CRYPTAGE AVEC MD5!!! [VC++ 6.0]

Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
- - Dernière réponse : scelw
Messages postés
117
Date d'inscription
mercredi 3 septembre 2003
Statut
Membre
Dernière intervention
17 février 2007
- 17 févr. 2007 à 10:58
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/17535-cryptage-avec-md5-vc-6-0

scelw
Messages postés
117
Date d'inscription
mercredi 3 septembre 2003
Statut
Membre
Dernière intervention
17 février 2007
-
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és
83
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
12 octobre 2005
-
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és
2
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
5 mai 2004
-
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és
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
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és
2
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
5 mai 2004
-
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és
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
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és
3
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
20 avril 2004
-
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és
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
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és
3
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
20 avril 2004
-
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és
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1 -
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és
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
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és
5
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
12 décembre 2003
-
(ben aucun :) )
en fait ce qui te parait évident est nouveau pour moi (je débute!)

Merci
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
ben pr un fichier tu charges le fichier dans une chaîne de caractère, quel est le problème ?
petitprince77
Messages postés
5
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
12 décembre 2003
-
ahhh au fait pourquoi ce code ne fonctionne pas sur win98?

quel autre alternative y aurait il?
petitprince77
Messages postés
5
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
12 décembre 2003
-
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és
23
Date d'inscription
lundi 1 juillet 2002
Statut
Membre
Dernière intervention
27 juin 2004
-
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és
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1 -
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és
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
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és
4
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
4 novembre 2003
-
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és
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1 -
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és
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
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és
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8 -
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és
29
Date d'inscription
dimanche 8 juillet 2001
Statut
Membre
Dernière intervention
30 octobre 2003
-
Très bon code.
D1m3x
Messages postés
402
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
21 juillet 2005
1 -
J'attends vos commentaires!