我应该使用什么哈希算法用于存储的密码?(What hashing algorithm should

2019-06-27 07:53发布

我不是真的了解最新的关于散列算法优势的最新发展; 什么是目前用于存储密码我最好的选择?

此外,如何更安全做腌制和关键拉伸给我?

Answer 1:

  • MD5已经被打破 。
  • SHA-1有显著的弱点 。
  • SHA-2被认为是足够的时刻。
  • SHA-3将很快成为一个标准FIPS 。
  • 最好的做法是密码哈希随机腌制和关键拉伸,如结合PBKDF2 。
  • 一个密码盐析,商量好了哈希和拉伸 。
  • 我执行密码盐腌哈希,并在C#拉伸 。

至于通过散列提供额外的安全性,这取决于你使用了多少哈希迭代。 举个例子,假设你决定使用2 ^ 14哈希迭代。 这个由14位增加了密码的熵。 根据摩尔定律,由哈希提供熵的每个额外位意味着大约18个额外的同时,今天破解密码。 因此,这将是21年(14×18个月)前的迭代散列可以作为原始密码今天可以被破解的同时被破解。

通过盐析所提供的额外的安全性是双重的:它防止有效使用彩虹表,并且它使得它更费时破解密码的大列表(而不是一个单一的密码)。



Answer 2:

看看这个。

这种过度的security.stackexchange问题是bcrypt与PBKDF2的一个很好的讨论- 是否有任何安全专家建议bcrypt口令存储?

最关键的是,仅仅一个哈希函数不能阻止预计算攻击(如彩虹表)。 并加入盐不会保护你从字典或蛮力攻击。 你是更好的使用bcrypt或PBKDF2比散列算法构建自己的方案。



文章来源: What hashing algorithm should I use for storing passwords?