我一直在阅读有关Gawker事件,并且有几篇文章关于仅使用bcrypt来哈希密码冒出来,我想确保我的哈希机制足够安全避免切换到另一种方法。在我目前的应用程序中,我选择了使用sha2-512和最少1000次迭代的PBKDF2实现。密码加密:PBKDF2(使用sha512 x 1000)vs Bcrypt
我可以询问关于使用PBKDF2与Bcrypt以及我是否应该实施更改的意见吗?
我一直在阅读有关Gawker事件,并且有几篇文章关于仅使用bcrypt来哈希密码冒出来,我想确保我的哈希机制足够安全避免切换到另一种方法。在我目前的应用程序中,我选择了使用sha2-512和最少1000次迭代的PBKDF2实现。密码加密:PBKDF2(使用sha512 x 1000)vs Bcrypt
我可以询问关于使用PBKDF2与Bcrypt以及我是否应该实施更改的意见吗?
你对PBKDF2很好,不需要跳到bcrypt。
尽管在2000年推荐使用1000次迭代,但现在您还需要更多。
此外,你应该使用bcrypt时多加小心:
还值得一提的是,虽然bcrypt比PBKDF2强于大多数类型的密码,它落后于长密码短语;这是由于bcrypt无法使用密码的前55个字符,而我们的估计成本和NIST的。密码熵的估计表明bcrypt的55个字符的限制不是可能导致当前问题的系统,依赖于加密的系统的实现者可能被建议或者绕过这个限制(例如,通过“预处理”一个密码,以使其适合55个字符的限制)或采取步骤 防止用户在第56个字符和后续字符中放置太多密码熵(例如,通过询问网站的用户将他们的密码输入到输入 只有55个字符的空格)。
这就是说,有也scrypt。
任何比较将是不完整不脱离scrypt纸上面提到的表:
为PBKDF2-HMAC-SHA256迭代计数使用有86000和4300000。
评论(RE:标题):
意见和 我是否应该实施 变化?
我的看法:
使用PBKDF2超过Bcrypt。 (我对SHA的信心比Blofish更强,无缘无故)
至于你是否应该“实施变更”,我不知道你在问什么。
编辑更加清楚地分开加密/散列讨论从陈述我的偏好w/r/t算法。
“要求网站用户将密码输入到只有55个字符的输入框中。”我很抱歉,但这如何适用于现实世界?我几乎不能提供8个字符的密码。 – m33lky 2012-03-03 22:39:36
我认识一个使用伟大的国际象棋游戏序列作为密码的人。他将这些序列与玩家姓名,日期,所玩城市等进行了盐化。我知道另一个使用史诗诗歌的人,并引入了故意的错误。有很多方法可以获得长密码。 – Cheeso 2012-06-08 06:24:47
应该注意的是,scrypt文件中有一个错误,并且bcrypt的实际算法截止值为72个字符。所以仍然有一个临界值,但它有128位的熵。这是非常重要的。 – ircmaxell 2013-11-26 22:01:13