我一直在阅读有关Gawker事件的文章,有几篇关于仅使用bcrypt哈希密码的文章已经出现,我想确保我的哈希机制足够安全以避免切换到另一种方法。在我目前的应用程序中,我选择了使用sha2-512进行PBKDF2实现,并且至少进行了1000次迭代。
我是否可以就使用PBKDF2与Bcrypt以及我是否应该实施更改提出意见?
答案 0 :(得分:27)
你对PBKDF2很好,不需要跳转到bcrypt。
尽管如此,建议在2000年使用1000次迭代,现在你需要更多。
另外,使用bcrypt时应该更加小心:
值得注意的是,虽然对于大多数类型的密码,bcrypt比PBKDF2强,但是对于长密码而言,它落后了;这是由于bcrypt无法使用超过密码短语的前55个字符而我们的估计成本和NIST的结果。 密码熵的估计表明bcrypt的55个字符的限制不是 目前可能引起问题的依赖于系统的实现者 bcrypt可能是明智的,要么解决这个限制(例如,通过“prehashing”密码短语使其达到55个字符的限制)或采取措施 防止用户在第56及以后放置太多密码熵 字符(例如,通过要求网站的用户在输入中键入他们的密码 只有55个字符的空格框。)
那就是说,还有scrypt。
如果没有上面提到的scrypt文件中的表格,任何比较都是不完整的:
PBKDF2-HMAC-SHA256的迭代次数有86,000和4,300,000。
答案 1 :(得分:-7)
评论(重新:标题):
关于使用PBKDF2与Bcrypt和 我是否应该实施 改变?
我的意见:
在Bcrypt上使用PBKDF2。 (我完全相信SHA比Blofish更有信心)
至于你是否应该“实施改变”,我不知道你在问什么。
编辑以更清楚地将加密/散列讨论与陈述我的偏好w / r / t算法分开。