0

我想使用文件的 md5 作为存储 mp3 文件的密钥,但我担心不同的文件具有相同的 md5。所以我想知道 128bit md5 在不同数量的文件(例如 1000 万或 5000 万)上的冲突率是多少?是否有任何工具或公式可以直接计算费率?

4

1 回答 1

0

假设 MD5 是完美的。

对于 5000 万个文件,有 50000000 x 49999999 / 2 次可能的冲突 [每个文件与另一个文件之间]。

这是 2499999950000000。

有 2^128 = 3.4028236692093846346337460743177e+38 个可能的 md5 哈希值。

因此,5000 万个文件有 2499999950000000 / 2 * 3.4028236692093846346337460743177e+38 = 3.6e-24 发生冲突的机会 [大约]。

这意味着有 0.0000000000000000000000036% 的机会发生冲突。

这与“从不”几乎相同

现在已知 MD5并不完美,而且它是可攻击的。但是,对于普通文件(即那些没有专门生成为问题的文件),可以认为是这样。

因此,如果用户控制上传的文件并可以攻击系统,那么您应该使用 SHA2 或更好,如果这里没有问题,md5 就可以了。

于 2013-05-20T10:11:09.787 回答