2011-03-12 3 views
2

Possible en double:
Is it possible to decrypt md5 hashes?Récupération de mot de passe: Comment déchiffrer un mot de passe crypté md5?

Dans mon site, j'utilise le cryptage md5 pour le mot de passe. Il est donc enregistré sous forme cryptée dans la base de données. Pour faire la récupération de mot de passe, comment puis-je décrypter le mot de passe crypté?

S'il vous plaît aider :)

+6

Vous ne "décryptez" pas le mot de passe. Hachez également le mot de passe entrant avec MD5, et si ce hash correspond à celui de la base de données, les mots de passe sont les mêmes. Vous devriez également utiliser un "sel". – Zabba

Répondre

9

Comme d'autres l'ont très bien décrit, vous ne pouvez pas facilement ' décrypter 'un hachage MD5.

Je pense que la meilleure façon de faire votre récupération de mot de passe est comme ceci:

  1. Un utilisateur peut demander la récupération de mot de passe en fournissant son adresse e-mail (il doit être unique afin que les utilisateurs peuvent être identifiés par l'adresse e-mail).

  2. un email est envoyé à son adresse avec un lien contenant un unique hash (qui vous avez généré lors de l'envoi du courrier électronique et enregistré à la db).

  3. lorsque le lien est cliqué par l'utilisateur (et bien sûr le hachage unique est vérifié d'être égal à celui du db) vous pouvez afficher une forme qui leur permet de choisir un mot de passe différent.

Une autre voie que certaines personnes utilisent est de simplement demander l'adresse e-mail, générer un nouveau mot de passe et l'envoyer à l'utilisateur. Le problème avec celui-ci est que quelqu'un qui ne connaît que votre adresse e-mail peut demander un changement de mot de passe. Il ne connaîtra pas le nouveau passage, et vous l'obtiendrez par email, mais cela reste très incommode pour l'utilisateur.

5

Je pense que MD5 est un algorithme de hachage à sens unique. Cela signifie qu'une fois chiffré, les données ne peuvent pas être déchiffrées. (Je suis sûr qu'un bon hacker sera cependant en désaccord)

Quoi qu'il en soit, pour les mots de passe, vous pouvez enregistrer la version cryptée du mot de passe dans la base de données. Lorsqu'un utilisateur tente de se connecter, cryptez le mot de passe entré en utilisant le même algorithme MD5 et comparez la version cryptée du mot de passe avec le mot de passe crypté stocké dans la base de données. Une fois que vous êtes à l'aise avec cette approche, vous pouvez commencer à regarder le concept de l'ajout de sel au mot de passe haché.

De plus, il existe d'autres algorithmes de hachage que MD5. Si vous utilisez .NET, il y a un tas dans le framework, tel que SHA512Managed. Chacun a ses compromis, tels que la vitesse à hachage, la sécurité, etc. Choisissez celui qui résout votre problème particulier.

4

Vous ne pouvez pas déchiffrer un mot de passe MD5! Le seul moyen serait de le forcer! Si vous voulez faire la récupération de mot de passe faire une sorcière chaîne aléatoire sera envoyé à l'utilisateur par e-mail (ou tout autre moyen) et défini comme un mot de passe md5'd ... Juste une idée

EDIT: Pourquoi crypter un mot de passe pour le garder en sécurité si vous pouvez le déchiffrer? Ça n'a aucun sens! -> Vous pouvez essentiellement laisser le mot de passe non crypté!

+0

Accepte avec vous complètement :) –

5

MD5 est un chiffrement basé sur le hachage. Ce que cela signifie, c'est qu'il n'y a aucun moyen de récupérer la valeur d'origine. Vous avez créé quelque chose qui est une "somme de contrôle" des données d'origine. Vous pouvez utiliser l'algorithme MD5 pour crypter autre chose, puis le comparer à la version MD5 des données, mais vous ne pourrez jamais récupérer l'original. Il serait similaire à moi disant: 5 + 3 + 2 = 10. Les données d'origine est 5, 3 et 2. Mais le "hash" est 10. Il n'y a aucun moyen d'obtenir les données d'origine de la hachage, mais si quelqu'un fournit l'entrée correcte (5, 3, 2), je peux le hacher, et confirmer qu'il correspond à hash que j'ai sur le fichier, 10.

Questions connexes