Question

OK, je suis un peu confus.J'essaie d'utiliser MessageDigest pour stocker mes mots de passe dans la base de données en tant que hachage MD5, puis tirez le HASH OUT pour vérifier le mot de passe d'un utilisateur lorsqu'ils essaient de vous connecter.

Ainsi, lorsqu'un utilisateur enregistre, à enregistrer.jsp, j'utilise ce code pour convertir leur mot de passe (la chaîne est appelée "mot de passe" dans le code) sur un hachage (appelé "hashtext"):

MessageDigest m = MessageDigest.getInstance("MD5");
m.reset();
m.update(password.getBytes());
byte[] digest = m.digest();
BigInteger bigInt = new BigInteger(1,digest);
String hashtext = bigInt.toString(16);

while(hashtext.length() < 32 ){
  hashtext = "0"+hashtext;
}

Ensuite, j'ai besoin de gérer comment vérifier le mot de passe saisi lorsqu'un utilisateur essaie de vous connecter.J'ai une autre page: login.jsp, où j'exécute exactement le même code que ci-dessus sur le mot de passe entré et vérifiez le résultat contre le hachage I Tirez de ma base de données.

Cependant, cela ne fonctionne pas, et je suppose que c'est parce qu'un nouvel objet MessageDigest est créé (MessageDigest.getinstance ("MD5"););) et donc l'algorithme fonctionne différemment.

dois-je vous assurer que le même objet MessageDigest est utilisé sur login.jsp comme registre.jsp?

Était-ce utile?

La solution

Cependant, cela ne fonctionne pas, et je suppose que c'est parce qu'un nouvel objet MessageDigest est créé (MessageDigest.getinstance ("MD5"););) et donc l'algorithme fonctionne différemment.

Ce n'est pas vrai.


dois-je vous assurer que le même objet MessageDigest est utilisé sur login.jsp comme registre.jsp?

NO.


Votre problème est causé par autre chose.Vous n'avez probablement pas enregistré le hachage du mot de passe initial dans la base de données, ou vous ne vous comparez pas au hachage du mot de passe saisi, ou vous comparez le hachage sur un système qui utilise une indigne de caractères par défaut sur getBytes().Vérifiez les valeurs de hachage réelles avant de faire des conclusions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top