2012-01-24 81 views
6

這個問題讓我開始重新思考密碼哈希。我目前使用bcrypt(特別是py-bcrypt)。我聽說過很多關於PBKDF2和scrypt的內容。我應該使用哪種密碼哈希方法?

我想知道的是,如果有任何我可能不知道的「更現代的」密碼哈希方法(因爲它們是新的,所以人們不會那麼多地談論它們),或者其他方法我不知道。

然後從那裏開始,我應該使用哪一個?大多數人似乎都推薦使用bcrypt,但是我想知道這是不是因爲它很舊(閱讀:衆所周知)。 scrypt似乎更好(可變內存使用量)。我對PBKDF2瞭解不多。

因此,如果我制定用戶管理方案,我應該使用哪些方案?或者我應該使用完全不同的東西?

回答

6

PBKDF2用於WPA/WPA2和域緩存的證書2(AKA DCC2)。您可以更改HMAC-SHA1的迭代以提高安全性。這種減緩開裂過程的方法是不間斷的。但是,由於它基於SHA1,因此可以稱其爲GPU友好型攻擊。

Both,bcrypt和scrypt使用查找表。這種內存依賴性使得GPU不友好。然而,最新的28   nm GPU架構可以重新啓用對內存的快速訪問。

現在你應該喜歡bcrypt或scrypt。使用內存依賴哈希是一個不錯的選擇,但是在將來這可能會改變。密切關注餅乾的GPU性能如何提高。他們有可能會到達一個事件視界,在這個視界內切換回GPU友好的散列,但增加迭代次數會更好。