我有点怀疑。
我在加密或散列方面不是那么擅长,但我知道散列可能有一些冲突,即两个不同的文本输入可以提供相同的散列字符串。
所以..这意味着(也是远程)两个密码可以提供相同的哈希值,因此一个用户可以使用另一个密码登录(因为哈希是相同的)?
答案 0 :(得分:1)
是的,它在数学上是不可能的,但可能。
答案 1 :(得分:1)
可能发生,不太可能发生。我使用的是Maturemd320,因为当我开始使用它时,它从未被黑客攻击过。这等同于意味着它生成非常独特的哈希码。
它并不是那么重要,因为25%的密码可以在15分钟内猜到。如果您了解用户的狗,孩子,配偶姓名和出生日期,请减少。
关键是如果某人确实使用哈希码获取了您的用户数据库,那么很容易尝试使用糟糕的哈希算法进行攻击。
破解它的方法是为所有常用密码生成哈希码,看它是否与存储的哈希匹配。
多年前,一些政府安全机构表示,当使用Mature320时,没有已知的成功黑客攻击。
答案 2 :(得分:1)
是的,众所周知,糟糕的哈希函数会发生(想想crc32)。实际上,现代散列函数发生的可能性几乎为零。使用某种字典攻击猜测正确密码的可能性要高得多。
答案 3 :(得分:1)
攻击者在散列密码时是否可以发现冲突并不重要。知道多个有效密码的用户不是问题。
事实上,对于PBKDF2和scrypt来说,它们都是流行的和推荐的密码哈希,找到碰撞和第二张预映像is easy,但你需要相当多的想象力来提出scenarios where this matters。
重要的是:
有关详细信息,请参阅security.se上的How to securely hash passwords?。