38

md5 算法发生冲突的概率是多少?我相信它非常低。

4

2 回答 2

44

如果您不尝试故意创建碰撞,则平均需要散列大约 2^64 个值才能在它们之间产生一次碰撞。哈希冲突与生日问题非常相似。

如果您查看两个任意值,碰撞概率仅为 2 -128

md5 的问题在于,制作两个散列到相同值的不同文本相对容易。但这需要蓄意攻击,并且不会意外发生。即使是蓄意攻击,目前也无法获得与给定哈希匹配的纯文本。

简而言之,md5 对于非安全目的是安全的,但在许多安全应用程序中被破坏了。

于 2012-01-13T15:15:22.523 回答
7

它生成一个 128 位的值。因此,意外冲突率应该是 2 -64(因为生日悖论)。

于 2012-01-13T15:16:01.850 回答