例如,假设有人可以访问哈希“PafgokWMoHSZE”。因为这是通过 crypt(Password1,Password1) 获得的,逆向工程是否比任何其他盐更容易/更难?
问问题
57 次
2 回答
2
不太安全,不要这样做。问题是盐是在散列上加上前缀的——开头的 Pa 是 Password1 的前两个字符。您已将 9 个字符的密码减少到 7 个字符的密码强度。
PHP 的 crypt() 会自动为你生成一个随机盐。除非您需要特定的算法,否则最好保留它。
编辑:我突然想到这也让用户可以控制散列算法,这几乎肯定不是你想要的。无效的盐(即密码中的无效字符)也会导致 crypt() 失败。
于 2013-10-13T02:40:21.673 回答
1
我想说这不是很安全,因为任何人都可以尝试将密码本身作为盐。
破解者可以很容易地将密码本身作为一种盐来尝试成为规则。甚至不是系统地,而是仅在测试批次上。如果您的盐加密密码泄露,他可以在第一次运行时尝试,然后很容易发现密码是盐,然后对列表的其余部分应用相同的配方。
更多解释
如果你的密码是“flower”,任何字典攻击都会尝试“flower”这个词。破解者将尝试在 md5、SHA1 等中查找“flower”的哈希值。如果它不起作用,那么他将假定哈希值已被加盐。这让事情变得更加困难。除非他试图将密码本身用作盐。
于 2013-10-13T02:06:00.820 回答