【发布时间】:2015-07-19 01:13:00
【问题描述】:
加盐密码真的有意义吗?
如果一个程序完成了 SALT 服务器端的所有处理,那么它真的会让暴力破解或其他攻击变得更加困难。该代码只会将盐应用于用户输入的任何内容。
这一切都错了吗?
【问题讨论】:
加盐密码真的有意义吗?
如果一个程序完成了 SALT 服务器端的所有处理,那么它真的会让暴力破解或其他攻击变得更加困难。该代码只会将盐应用于用户输入的任何内容。
这一切都错了吗?
【问题讨论】:
是的,加盐密码是有道理的。
关键是每个密码都有自己的盐,因此攻击者无法利用字典和彩虹表一次暴力破解所有密码。
盐不会使破解单个密码变得更难¹,但它消除了尝试一次破解多个密码的好处。攻击者必须一次暴力破解一个密码。
¹ 至少不足以成为使用它的充分理由。使用更好的密码效果会更好。
【讨论】:
总之,是的。
对密码进行加盐会增加字符串的复杂性并使人类感到困惑,并使字典攻击不太可能成功。
然而,蛮力仍然可以破解此密码,因此需要随机生成的盐。
盐通常是通过字节数组生成的,然后将其输入到一个函数中,以将两个字符串每隔一段时间组合成一个字符串。看我的回答here。
【讨论】:
散列可能在没有盐的情况下泄漏(常见情况:数据库被转储,但我存在于 PHP 源中的盐不会泄漏)。
【讨论】:
在某种程度上你是对的,但是......对 SALT 最重要的保护是,如果哈希确实被释放到野外,那么反向哈希查找要困难得多。
散列一个词,然后将散列结果放到你最喜欢的搜索引擎中,看看我的意思。
【讨论】: