2012-02-21 57 views
0

這裏散列字符串是算法的話。FNV用C

hash = FNV_offset_basis 
for each octet_of_data to be hashed 
    hash = hash * FNV_prime 
    hash = hash XOR octet_of_data 
return hash 

,但如果我有一組字符串,然後將我採取什麼樣的FNV_offset_basis的,

,什麼是被散列的數據的每個字節的含義。

而且應該是什麼表的大小,說有N個字符串被散列。

請幫助我與琴絃的修改。

謝謝。

+1

FNV_offset_basis是 「chongo <蘭登簡略諾爾>/\ ../ \」 的FNV-0的散列,如在網站上解釋:http://www.isthe.com/chongo/tech/comp/fnv/ index.html – porges 2012-02-21 21:56:43

+0

@Porges不能讓我有更簡單的含義。 – Kraken 2012-02-21 22:03:27

回答

1

從上面的註釋的參考網站,

32 bit offset_basis = 2166136261 

64 bit offset_basis = 14695981039346656037 

使用對應於你的哈希的寬度之一。

一個八位長字節是一個8位字節。如果您使用8位字符的文本,則八位字節和字符是相同的。

表的大小是由你;一定要比N大!它越大,你應該期望的碰撞越少。