2011-03-24 59 views
0

我可以創建一個非常短的SHA1哈希來唯一標識一個通常具有類似1300992607的標識的對象嗎?用於標識對象的SHA1哈希長度?

這是一個相對理論上的問題,但SHA1散列可以有多短並且對於對象ID仍然是唯一的?如果沒有在這裏提出正確的問題,請幫助我。

回答

1

不,你不能,哈希不會這樣工作。

您可以爲id創建一個散列,只需要從中選擇多少位。您使用的位數越多,得到的散列對於兩個不同的id的散列的可能性就越小,但不管從散列中使用了多少位,仍然不能保證永遠不會發生衝突。

+0

哦哇,所以即使提供的輸入是唯一的每一次? – 2011-03-24 19:18:20

+0

@約瑟夫西爾瓦西:是的。哈希值只能保證是唯一的,也就是說,如果你有兩個不同的哈希碼,它們不能來自相同的原始值,無論哈希碼有多小,原始值有多大。 – Guffa 2011-03-24 19:37:23