密码加密:PBKDF2(使用sha512 x 1000)与Bcrypt

bug*_*com 15 passwords hash password-protection bcrypt pbkdf2

我一直在阅读关于Gawker事件的文章,并且有几篇关于仅使用bcrypt哈希密码的文章,我想确保我的哈希机制足够安全以避免切换到另一种方法.在我目前的应用程序中,我选择了使用sha2-512和至少1000次迭代的PBKDF2实现.

我是否可以就使用PBKDF2与Bcrypt以及是否应该实施更改提出意见?

dch*_*est 27

你对PBKDF2很好,不需要跳转到bcrypt.

尽管如此,建议在2000年使用1000次迭代,现在你需要更多.

此外,使用bcrypt时应该更加小心:

值得注意的是,虽然对于大多数类型的密码,bcrypt比PBKDF2更强,但是对于长密码而言,它落后了; 这是由于bcrypt无法使用超过密码短语的前55个字符而我们的估计成本和NIST的结果.密码短语熵的估计表明,bcrypt的55个字符的限制目前不太可能导致问题,依赖于bcrypt的系统的实现者可能会被建议解决这个限制(例如,通过"预先传输"一个密码来解决这个问题.使其达到55个字符的限制)或采取措施防止用户在第56个及后续字符中放置太多密码熵(例如,通过要求网站用户在只有空格的输入框中键入他们的密码55个字符).

从scrypt纸[PDF]

也就是说,还有scrypt.

如果没有上面提到的scrypt论文中的表格,任何比较都是不完整的:

在1年内破解密码的硬件估计成本.

PBKDF2-HMAC-SHA256的迭代计数分别为86,000和4,300,000.

  • 我认识一个人使用一系列伟大的国际象棋游戏作为密码.他将序列与玩家的名字,日期,所播放的城市等区分开来.我认识另一个人使用史诗中的诗句,并引入故意错误.有很多方法可以获得rilly长密码. (7认同)
  • "要求网站用户在一个只有55个字符的空格的输入框中输入密码." 对不起,这怎么适用于现实世界?我几乎无法想出8个字符的密码. (5认同)