我想知道我是否遇到了一個bug,或者剛剛遇到了Hashids算法的限制。Hashids獨特的空間
我使用一個自定義的字母,其中包括所有大寫字母的,減去「O」和「I」與數字2 - 9
產生幾百萬散列後,我注意到,副本開始出現。我很困惑,尤其是因爲Hashids聲稱重複是不可能的,因爲算法只是一個整數的十六進制版本。只要整數仍然是唯一的(例如永遠數數),哈希值也是如此。
自定義字母表是否使重複出現的可能性更大?另外,我期待着我的字母表中唯一的哈希數是:32^7 = 34359,738,368。在我的櫃檯達到這個數字之前,生成的hashids從7個字符長到8個。
有沒有人有任何想法,爲什麼會發生這種情況?
編輯:另一個相當奇怪的異常:在生成10647個散列之後,剩下的(290萬加)或者以K或X開始。我開始認爲自定義字母加上鹽的長度會影響字母被洗牌。
您使用哪種語言? – Paulpro
@Paulpro,對不起,Java。我也將它作爲標籤添加了。此外,使用Hashids版本1.0.0 – dmux
*「生成幾百萬次哈希後」* - 您試圖準確生成多少? –