Я использую Play 1.2.1. Я хочу хешировать пароль моего пользователя. Я думал, что Crypto.passwordHash
будет хорошо, но это не так. В документации passwordHash говорится, что он возвращает хэш пароля MD5 Я создал несколько учетных записей в фикстуре, куда я положил хэш пароля md5:
...
User(admin):
login: admin
password: f1682b54de57d202ba947a0af26399fd
fullName: Administrator
...
Проблема, когда я пытаюсь войти, что-то вроде этого:
user.password.equals(Crypto.passwordHash(password))
и это не работает. Поэтому я поместил запись в журнал в моем методе autentify
:
Logger.info("\nUser hashed password is %s " +
"\nPassed password is %s " +
"\nHashed passed password is %s",
user.password, password, Crypto.passwordHash(password));
И хеши паролей действительно разные, но эй! Вывод метода passwordHash
не является даже хешем MD5:
15:02:16,164 INFO ~
User hashed password is f1682b54de57d202ba947a0af26399fd
Passed password is <you don't have to know this :P>
Hashed passed password is 8WgrVN5X0gK6lHoK8mOZ/Q==
Как насчет этого? Как это исправить? Или, может быть, мне нужно реализовать собственное решение?