2013-02-13 54 views
2

GUID's(128位)或GUID's(160位)的SHA1散列之間是否有更多機會發生衝突?我認爲GUID(即使少32位)的機會較小,因爲它有一些特殊的機制來確保它是唯一的(幾乎是因爲不保證)(例如:時間戳)GUID的GUID或SHA1哈希之間是否有更多機會碰撞?

注意:我已經知道一個GUID是不太可能與另一個GUID發生衝突,請不要再討論這個問題。

+0

散列衝突是不可避免的。您所能做的就是嘗試使用具有足夠大關鍵空間的散列,以避免在您的使用場景中發生衝突。 – 2013-02-13 19:22:43

回答

8

這是微不足道的:如果 2個GUID是相同的(即,每個GUID碰撞),它們的哈希值也相同(我們有一個「碰撞」,這是不是「SHA1碰撞」,但它的壞足夠我們的應用程序)。另外還有一個散列衝突的概率是正確的(對於不同的GUID,相同的SHA1)。

如果您散列GUID,則只能添加衝突。

+0

同意。它甚至不需要如何創建GUID,或SHA1哈希中的多少位。你的最後一句話說明了一切。 – hatchet 2013-02-13 19:31:49

+0

我們是否確實知道兩個不同的128位GUID是否存在產生SHA1衝突的非零概率?如果是這樣,你知道那個概率是多少? – mbeckish 2013-02-13 19:37:12

+0

@mbeckish - 根據生日問題,大概有> 25%的機會將所有唯一的GUID散列到256位散列空間中。只有160位的機會會更高。 – hatchet 2013-02-13 19:44:12