可能重复:
What's the recommended hashing algorithm to use for stored passwords?
您好,我最近被告知像SHA256这样的常见哈希函数不能用作密码哈希函数,因为它们“设计得很快”(顺便提一下,我早先曾问过程序员更快的哈希函数。 )。所以我的问题是,网站或其他一般应用程序应该使用什么?
另外,第二个问题:SHA256真的不是散列密码的好选择吗?我有点不相信,但我听说过更疯狂的事情。
(注意:假设正在采取所有其他正确的行动,例如独特的盐)
答案 0 :(得分:3)
您应该使用bcrypt。
答案 1 :(得分:1)
在撰写本文时,SHA256足以用于密码保护,但可能不会在一年左右。
我可能会使用SHA512,因为我目前的安全性并不是很好,而且我不确定是否有任何东西可以真正安全,因为CPU和GPU的计算能力大幅增加
答案 2 :(得分:1)
它不会保护您免受rainbow table attacks的攻击。每次都会使用相同的密码对相同的结果进行哈希处理。攻击者可以在时间与空间权衡上妥协,预先计算最流行的密码并简单地查找答案。要打败,你需要加盐。 (Mike建议用户ID)
如你所知,哈希算法设计得很快。有时需要这样做(例如获取50MB文件的哈希),但在密码的情况下则不然。请改用基于密码的密钥派生函数。它会显着减慢攻击者的速度,但不会影响你自己的速度。