【问题标题】:Which password hashing method should I use?我应该使用哪种密码哈希方法?
【发布时间】:2012-01-24 08:45:47
【问题描述】:

这个问题让我再次开始思考密码哈希。我目前使用 bcrypt(特别是 py-bcrypt)。我听说过很多关于 PBKDF2 和 scrypt 的信息。

我想知道是否有任何我可能不知道的“更现代”的密码哈希方法(因为它们是新的,所以人们不怎么谈论它们),或者我可能不知道的其他方法不知道。

然后从那里继续,我应该使用哪一个?大多数人似乎都推荐 bcrypt,但我想知道这是否只是因为它很旧(阅读:众所周知)。 scrypt 似乎更好(可变的内存使用量)。我对 PBKDF2 了解不多。

那么,如果我制定一个用户管理方案,我应该使用哪一个?还是我应该使用完全不同的东西?

【问题讨论】:

    标签: java hash passwords password-protection


    【解决方案1】:

    PBKDF2 用于WPA/WPA2 和域缓存凭据 2 (AKA DCC2)。您可以更改 HMAC-SHA1 的迭代以提高安全性。这种减缓开裂过程的方法是不间断的。但是,由于它基于 SHA1,因此您可以称其为 GPU 友好的攻击。

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

    现在你应该选择 bcrypt 或 scrypt。使用依赖于内存的哈希是一个不错的选择,但将来这可能会改变。密切关注饼干的 GPU 性能如何提高。他们可能会到达一个事件视界,在这个事件视界上,最好切换回只进行 GPU 友好的哈希,但增加它们的迭代次数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      • 2010-10-22
      • 2012-10-09
      • 2010-12-06
      • 1970-01-01
      • 2012-05-06
      • 2012-08-19
      相关资源
      最近更新 更多