2009-11-27 3 views
0

Je stocke les mots de passe des clients dans la base de données en utilisant le cryptage.Mise à jour et mot de passe md5

Lorsque le client édite ses données personnelles (y compris le mot de passe), les mots de passe sont présentés comme *****

Comment puis-je comprendre que l'utilisation changer son mot de passe pour écrire à DB sans crypté encore et encore.

Je veux dire que la valeur dans le champ mot de passe est la valeur cryptée. Si DonT changer le mot de passe doit mettre à jour avec la même valeur (ou non mise à jour du tout) Si le mot de passe de changement d'utilisateur à 1234 je dois chiffrer le 1234 et écrire à DB la valeur chiffrée

Merci

+2

MD5 n'est pas un crypto.alg. C'est un hachage. – erenon

+0

Pourriez-vous reformuler votre question? Je ne comprends pas ce que vous voulez dire dans les deux derniers paragraphes ... –

Répondre

6

Ne pas envoyer la chaîne hachée md5 de la DB arrière. Mettre en place trois champs:

  • ancien mot de passe
  • Nouveau mot de passe
  • Nouveau mot de passe

vérifier ensuite si le premier champ après hash md5 est égale à celle stockée dans la DB. Si c'est le cas, hachez le deuxième champ et stockez-le. (Uniquement si le deuxième et le troisième sont égaux)

+0

Merci, je vais à ipmlement – ntan

+0

fonctionne très bien – ntan

0

Vous devez entrer l'ancien et le nouveau mot de passe lorsque l'utilisateur souhaite le modifier. De cette façon, vous pouvez encoder l'ancien mot de passe, vérifiez si la valeur codée est la même que dans la base de données. Si c'est pareil, alors vous devriez mettre à jour le mot de passe en db avec le nouveau mot de passe encodé. Si ce n'est pas la même chose (ou si l'ancien mot de passe est vide), vous ne le faites pas.

Cela vous aide à distinguer entre la modification du mot de passe et la modification des paramètres uniquement. Vous gagnez également un certain niveau de sécurité, comme si quelqu'un a capturé la session de votre utilisateur, il ne peut pas changer son mot de passe sans capturer également le mot de passe original.

0

Quelques points:

  • MD5 est un algorithme de hachage, vous ne serez jamais en mesure d'inverser le hachage et c'est le point.
  • Ne pas utiliser MD5 comme il a été craqué, utilisez un SHA2 + algorithme de hachage (par exemple SHA256)
  • confirmer simplement le mot de passe avec le « ancien mot de passe » en hachant l'ancien mot de passe contre celui de la base de données.
  • Une autre option consiste à réinitialiser le mot de passe, qui enverra par courrier électronique leur courrier électronique de contact confirmé (espérons-le) avec le nouveau mot de passe.
  • S'ils sont déjà connectés au système, vous ne devriez plus avoir à «confirmer» l'ancien mot de passe.
  • N'envoyez jamais de nouveau le mot de passe haché à partir de la base de données, cela revient à vaincre le but de ce que vous essayez d'accomplir.
Questions connexes