为强大的,唯一的(用户不使用其他应用程序)密码提供密码是否有任何好处?
Salting(据我所知)可以防止使用字典或常用密码生成彩虹表。它还可以防止攻击者在另一个应用程序中注意到具有相同哈希的用户。
看起来像一个强密码(可能)不会出现在生成的彩虹表上,智能用户会为他想保护的每个应用程序使用唯一的密码,盐水保护已经“聪明”的用户吗?
这是理论上的。 我没有兴趣停止腌制。
实质上,盐不会成为密码的一部分吗?它恰好由看门人而不是用户提供。
答案 0 :(得分:8)
如果您可以保证所有用户永远不会重复使用密码,并且他们的任何密码都不会形成计算上可行的预先计算冲突哈希值的形式,那么盐确实没有什么额外的好处。
然而,盐的成本也很少;虽然这些前提确实非常难以保证,但错误的成本很高。保持盐。
答案 1 :(得分:1)
除了彩虹表之外,还有用于解决哈希的强力工具。这并不能防止未加盐的哈希值得到解决。密码只需要更长的时间。腌制肯定仍然有意义。
答案 2 :(得分:1)
这感觉就像你想做出一个假设,然后根据这个假设建立安全性。当你的假设因任何原因变得糟糕时,你的安全就会变坏。
那么你的假设(强密码不需要腌制)怎么会变得无效?
1)随着时间的推移,会生成更大,更全面的彩虹表。如果您的用户选择强密码,我会担心这一点。他们可能认为他们已经做得很好,你和你的安全检查可能会认为他们也做得很好,但后来事实证明他们的思维过程很容易通过串联几个单词和数字来复制密码。 / p>
2)如果用户无法选择密码,由于错误或其他原因,您的强密码生成过程可能会变得不那么强大。
3)您的用户可能太懒了,无法提供网站唯一/强密码!这肯定是最重要的问题。您真的想要生成只有加密专家才能使用的系统吗? :)
答案 3 :(得分:1)
彩虹表绝对不限于字典密码等。大多数人倾向于将每个角色组合包括在一定的最大长度中 - 毕竟,这是一代的一次成本。您的用户是否都使用12个以上的字符密码?不可能的。