我正在使用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==
怎麼樣?如何解決它?或者,也許我必須實施我自己的解決方案?
順便說一句,使用簡單的MD5-Hash密碼並不是很聰明。另外至少應該有一種鹽。 – niels 2011-06-09 18:20:03
@niels - 我知道,但這只是一個簡單的學習遊戲示例項目! – jjczopek 2011-06-09 18:22:07
我想你可能會喜歡下面鏈接的答案,它建議如何在java http:// stackoverflow中使用md5。com/questions/415953/generate-md5-hash-in-java – engin 2011-06-08 13:43:11