Я использую 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==
Как насчет этого? Как это исправить? Или, может быть, мне нужно реализовать собственное решение?