【发布时间】:2011-09-10 21:12:24
【问题描述】:
我使用的是 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==
那怎么样?如何解决?或者也许我必须实施自己的解决方案?
【问题讨论】:
-
我想你可能会喜欢下面链接中的答案,它建议如何在 java 中使用 md5 stackoverflow.com/questions/415953/generate-md5-hash-in-java
-
顺便说一句,使用简单的 MD5-Hash 作为密码并不是很聪明。另外至少应该有一种盐。
-
@niels - 我知道,但这只是一个简单的学习游戏示例项目!
标签: hash passwords md5 playframework