我应该使用哪种密码哈希方法?

6
这个问题让我重新思考密码哈希。我目前使用bcrypt(具体来说是py-bcrypt)。我听说过很多关于PBKDF2和scrypt的内容。
我想知道是否有任何“更现代”的密码哈希方法,可能因为它们是新的,所以人们不会谈论它们,或者其他我不知道的方法。
接下来,我想知道应该使用哪种方法?大多数人似乎推荐bcrypt,但我想知道这是否仅因为它已经存在很久(即:众所周知)。scrypt似乎更好(可变的内存使用量)。我对PBKDF2了解不多。
所以,如果我制作一个用户管理方案,我应该使用哪种方法?还是应该使用完全不同的东西?
1个回答

6

PBKDF2被用于WPA/WPA2和域缓存凭据2(又称DCC2)中。您可以更改HMAC-SHA1的迭代次数以增加安全性。这种减慢破解过程的方法是不可破解的。然而,由于它基于SHA1,因此可以称其为GPU友好型攻击。

bcrypt和scrypt都使用查找表。这种内存依赖性使其不适合GPU。然而,最新的28nm GPU架构重新启用了对内存的非常快速的访问。

目前应该优先选择bcrypt或scrypt。使用内存相关的哈希函数是一个不错的选择,但在未来可能会发生变化。密切关注破解者GPU性能的提高。有可能他们会达到一个事件视界,在这个事件视界上,最好切换回只进行GPU友好的哈希计算,但增加其迭代次数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接