Page 1 sur 1
inverse de md5() ?
Posté : 02 sept. 2005, 12:53
par VaN
Je cherche a recuperer un password sur lequel j'ai effectué la fonction md5() dans son etat originel. Quelle fonction permet cela ?
merci
Posté : 02 sept. 2005, 13:33
par Fredo
Salut,
Il n'y a pas de fonction disponible pour inverser le chiffrement effectué par la fonction md5(). C'est pour cette raison d'ailleurs que la fonction est utile pour protéger les mots de passe.
Lorsque tu oublies un mot de passe chiffré avec md5(), il faut recréer un nouveau mot de passe et l'envoyer à l'utilisateur.
Si tu veux pouvoir déchiffrer tes mots de passe, tu peux consulter la doc. sur les fonctions mcrypt
Fredo
Posté : 02 sept. 2005, 13:59
par VaN
bin en fait ce que je voudrais faire, c'est dans un fichier pour modifier un compte, re afficher le password dans un input type="password". Donc ce n'est pas possible ? a moins de stocker le password en brut dans un champ supplementaire ?
Posté : 02 sept. 2005, 14:02
par rami
Si tu stockes les mots de passe cryptés en md5 (ce qui est fortement conseillé) ds ta BD, tu ne peux pas les réafficher. Je ne vois aucun intérêt d'avoir un autre champ avec le mot de passe en clair. Si tu veux pouvoir réafficher le mot de passe, il ne faut pas le crypter avec md5, mais avec d'autres algorithmes qui sont réversibles.
Posté : 02 sept. 2005, 14:03
par Truc
a moins de stocker le password en brut dans un champ supplementaire ?
ds ce cas ca ne sert a rien de le stocker en md5()
sinon je pense effectivement que c impossible de le récuperé une fois passé par md5()
Posté : 02 sept. 2005, 14:22
par zeus
la méthode de cryptage MD5 est irréversible. Il est donc impossible de faire l'inverse de la fonction PHP md5(). Rien de nouveau, je ne fait que confirmer ce qui a été dit
Par contre, je te conseillerais de changer ta méthode.
Quand tu veut modifier un profil, il ne faut surtout pas afficher le mot de passe. En effet, si tu veut modifier une info qui te concerne alors que tu es dans ton bureau et que tout le monde peut voir ton écran sur lequel est affiché le pass, tout le monde peut le voir.
Pour jouer le parano, si tu laisse ton poste connecté et que tu t'en vas, toute personne qui prend ton poste et qui accede à la modif du profil peut trouver le pass.
Généralement, ce qu'on conseille, c'est de demander de resaisir le mot de passe lors d'une modification de profil. Ca permet de ne pas afficher le mot de passe et de s'assurer que celui qui fait la modification est bien la personne concernée par le profil
En esperant avoir été clair.
Posté : 02 sept. 2005, 19:56
par iclo
Quand à stocker des mp en clair dans la Db, c'est fortement déconseiller pour des raisons de sécurité...
Posté : 02 sept. 2005, 20:16
par starkeus
Alors juste pour infos...j'ai lu il y a pas mal de temps déjà (Science et avenir je crois) que la méthode MD5 connue jusqu'alors pour sa "solidité" avait été mise en cause par une équipe de chercheurs qui avaient réussis (mais je vs raconte pa la galère et le cout) à générer des collisions c'est à dire 2 mots en clair ayant le meme terme en crypté.
Voilà c'était juste un poste Culture "Gé"

Posté : 02 sept. 2005, 20:31
par rami
Oui effectivement. De plus, cette méthode peut être décryptée, mais cela demande pas mal de puissance de traitement ainsi que quelques jours

Posté : 02 sept. 2005, 23:03
par Cyrano
Note : md5() tout comme sha1() ne sont pas des méthodes de cryptage mais des méthodes de hachage. Le traitement est irréversible comme ça a été expliqué et il faudrait construire une usine à gaz pour inverser le processus.
La solution si tu veux crypter les mots de passe dans la base et pouvoir les récupérer : soit utiliser la librairie mcrypt et des fonctions de cryptage, soit, si tu utilises MySQL, utiliser
AES_ENCRYPT et AES_DECRYPT intégrées dans MySQL
Posté : 03 sept. 2005, 15:33
par zeus
De même, il existe une attaque à laquelle le md5 n'est pas étanche : l'attaque par dictionnaire
Le pirate crée un dictionnaire des mots de passes les plus courants et il les haches avec md5 et il teste le résultat du hachage avec les mots de passes stockés dans la base et si il trouve 2 valeurs identiques, il connait le mot de passe en clair.
Il y a quelques temps, ce genre d'attaque était difficile à réaliser avec de gros dictionnaires mais avec la constante évolution de la puissance des machines, ça devient de plus en plus courant
Je ne sais pas si ça a un rapport avec la question d'origine mais ça me semblait judicieux de le placer ici