如何使用md5计算碰撞的可能性?

时间:2009-05-12 21:13:34

标签: language-agnostic statistics md5 hash

我的密钥长度可以在1到256个字符之间*;如何计算使用md5时任意两个键发生碰撞的概率(禁止尝试每个键的强力解决方案)?

*字符集仅限于[a-z.-]

2 个答案:

答案 0 :(得分:4)

看一下birthday paradox,它将帮助您分析这一点。简而言之,由于MD5是128位散列,因此在碰撞可能达到50%之前,您需要2个 64 项。有一种假设认为MD5在128bit空间上均匀分布,我相信它不会这样做,但会接近。

如果你想知道这些数字是如何与你的密钥空间相对应的,那么我们假设你的所有密钥都是256个字符,你有26个 256 个可能的密钥,或者2个 1023 ,当然在2 128 键后你有100%的碰撞几率:)

答案 1 :(得分:2)

查看birthday problem。这正是你要找的。