2012-01-13 326 views

回答

27

如果您不試圖故意製造衝突,那麼您需要散列約2^64個值以平均獲得它們之間的單個衝突。散列衝突與Birthday problem非常相似。

如果您看兩個任意值,碰撞概率僅爲2 -128

md5的問題在於,製作兩個散列爲相同值的不同文本是相對容易的。但是這需要有意識的攻擊,並且不會意外發生。即使有意識的攻擊,現在也不可能獲得與給定哈希匹配的純文本。

簡而言之md5對於非安全目的是安全的,但在許多安全應用程序中被破壞。

+0

你如何得到這個值? – 2012-01-13 15:16:22

+1

2 ^(n/2)如生日問題所預測的那樣。 – CodesInChaos 2012-01-13 15:19:58

+0

由於這些信息,是否適合爲系統創建文檔ID包含基於其各自內容的md5散列的數百萬個文檔。 @CodesInChaos – SaidbakR 2015-06-07 15:31:13

5

它生成一個128位的值。因此意外衝突率應該是2 -64(因爲生日悖論)。

+2

衝突概率因爲重要的2^64值左右,但兩個任意值的衝突率只有2^-128。 – CodesInChaos 2012-01-13 15:22:00