我的密钥长度可以在1到256个字符之间*
;如何计算使用md5时任意两个键发生碰撞的概率(禁止尝试每个键的强力解决方案)?
*
字符集仅限于[a-z.-]
答案 0 :(得分:4)
看一下birthday paradox,它将帮助您分析这一点。简而言之,由于MD5是128位散列,因此在碰撞可能达到50%之前,您需要2个 64 项。有一种假设认为MD5在128bit空间上均匀分布,我相信它不会这样做,但会接近。
如果你想知道这些数字是如何与你的密钥空间相对应的,那么我们假设你的所有密钥都是256个字符,你有26个 256 个可能的密钥,或者2个 1023 ,当然在2 128 键后你有100%的碰撞几率:)
答案 1 :(得分:2)
查看birthday problem。这正是你要找的。 p>