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