我想使用文件'md5作为存储mp3文件的密钥,但我担心不同的文件有相同的md5。所以我想知道128bit md5在不同文件数上的冲突率是多少,例如1000万或5000万?是否有任何工具或公式可以直接计算出费率?
答案 0 :(得分:0)
假设MD5是完美的。
对于5000万个文件,有50000000 x 49999999/2个可能的冲突[每个文件与另一个文件相对]。
这是2499999950000000。
有2 ^ 128 = 3.4028236692093846346337460743177e + 38个可能的md5哈希值。
因此50million文件有2499999950000000/2 * 3.4028236692093846346337460743177e + 38 = 3.6e-24碰撞的机会[大约]。
这意味着有0.000000000000000000000036%的碰撞机会。
这与'never'几乎相同
现在已知MD5 NOT 是完美的,并且它是可攻击的。但是,对于普通文件(即没有特别生成的问题),可以这样认为。
因此,如果用户控制上传的文件并可以攻击系统,那么你应该使用SHA2或更好,如果这里没有问题,md5就完全可以。