密码应该使用什么哈希函数?

时间:2011-02-21 04:08:47

标签: security passwords hash sha

  

可能重复:
  What's the recommended hashing algorithm to use for stored passwords?

您好,我最近被告知像SHA256这样的常见哈希函数不能用作密码哈希函数,因为它们“设计得很快”(顺便提一下,我早先曾问过程序员更快的哈希函数。 )。所以我的问题是,网站或其他一般应用程序应该使用什么?

另外,第二个问题:SHA256真的不是散列密码的好选择吗?我有点不相信,但我听说过更疯狂的事情。

(注意:假设正在采取所有其他正确的行动,例如独特的盐)

3 个答案:

答案 0 :(得分:3)

您应该使用bcrypt

答案 1 :(得分:1)

在撰写本文时,SHA256足以用于密码保护,但可能不会在一年左右。

我可能会使用SHA512,因为我目前的安全性并不是很好,而且我不确定是否有任何东西可以真正安全,因为CPU和GPU的计算能力大幅增加

答案 2 :(得分:1)

麦克霍华德answerquestion马克相关的是正确的最佳做法 简单地使用好的哈希是不够的,因为:

  • 它不会保护您免受rainbow table attacks的攻击。每次都会使用相同的密码对相同的结果进行哈希处理。攻击者可以在时间与空间权衡上妥协,预先计算最流行的密码并简单地查找答案。要打败,你需要加盐。 (Mike建议用户ID)

  • 如你所知,哈希算法设计得很快。有时需要这样做(例如获取50MB文件的哈希),但在密码的情况下则不然。请改用基于密码的密钥派生函数。它会显着减慢攻击者的速度,但不会影响你自己的速度。