Хорошо, я немного смущен. Я пытаюсь использовать MessageDigest для хранения своих паролей в базе данных в виде хэшей MD5, а затем извлекаю хэш, чтобы проверить пароль пользователя при попытке входа в систему.
Итак, когда пользователь регистрируется на сайте register.jsp, я использую этот код для преобразования его пароля (строка называется «пароль» в коде) в хэш (называемый «хэш-текст»):
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;
}
Затем мне нужно управлять тем, как проверить пароль, введенный, когда пользователь пытается войти в систему. У меня есть еще одна страница: login.jsp, где я запускаю точно такой же код, как и выше, для введенного пароля и проверяю результат по хэшу, который я извлекаю из своей базы данных.
Однако это не работает, и я предполагаю, что это связано с тем, что создается новый объект MessageDigest (MessageDigest.getInstance("MD5");), и поэтому алгоритм работает по-другому.
Нужно ли мне убедиться, что в файле login.jsp используется тот же объект MessageDigest, что и в файле register.jsp?