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