如果我有一个 100 位的密码,并使用返回 50 位密钥的哈希函数对其进行哈希处理,现在我对其进行暴力破解直到得到一个产生匹配哈希值的字符串,那么现在是否有 50% 的可能性,即我用暴力破解生成的字符串不是原始密码,而是产生冲突的字符串?
答案1
不。这很多,很多小于这个数字。如果我们假设哈希函数是完美的,那么有 2^50 个密码会产生相同的 50 位哈希值。
使用简单的数字使其更清晰。假设您有 10^4 个小部件(10,000 个),并将它们放在 10^2 个盒子(100 个)中。平均每个盒子里有多少个小部件?嗯,是 10,000/100 或 100。因此,如果您正在寻找一个特定的小部件并且只知道它的盒子,那么从该盒子中随机选择的小部件是正确的概率是 1/100。
用你的数字计算一下,概率是 2^50 分之一。