我应该使用什么哈希算法来存储密码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我应该使用什么哈希算法来存储密码?相关的知识,希望对你有一定的参考价值。

关于哈希算法优势的最新发展,我真的不及时了。什么是目前存储密码的最佳选择?

另外,腌制和关键拉伸对我有多大安全性?

答案

至于散列提供的额外安全性,这取决于您使用的散列迭代次数。举个例子,假设您决定使用2 ^ 14个哈希迭代。这会将密码的熵增加14位。根据摩尔定律,哈希提供的每个额外的熵都意味着在今天同一时间内破解密码大约需要18个月。因此,在今天可以破解原始密码的同时破解迭代哈希之前将是21年(14 x 18个月)。

salting提供的额外安全性是双重的:它阻止了彩虹表的有效使用,并且使得破解大量密码(但不是单个密码)更加耗时。

另一答案

Check out this.

在security.stackexchange上的这个问题是对bcrypt与PBKDF2的良好讨论 - Do any security experts recommend bcrypt for password storage?

关键是单独的散列函数不会阻止预计算攻击(例如彩虹表)。添加盐不会保护您免受字典或暴力攻击。使用bcrypt或PBKDF2比使用哈希算法构建自己的方案要好得多。

以上是关于我应该使用什么哈希算法来存储密码?的主要内容,如果未能解决你的问题,请参考以下文章

哈希算法达到密码学安全需要什么

安全技术2:用户密码及哈希算法

区块链之哈希算法(完整篇)

哈希算法是什么?非对称加密是什么?

哈希算法上——如何防止数据库中的用户信息被脱库?

C# 通俗说 哈希表