FNV哈希算法
FNV版本
FNV哈希分为3个版本:fnv-0(已废弃),FNV-1,FNV-1a
算法实现
FNV-0算法公式
hash = 0
for each byte_of_data to be hashed
hash = hash * FNV_prime
hash = hash ^ octet_of_data
return hash
FNV-1算法公式
hash = FNV_offset_basis
for each byte_of_data to be hashed
hash = hash * FNV_prime
hash = hash ^ byte_of_data
return hash
FNV-1a算法公式
hash = FNV_offset_basis
for each byte_of_data to be hashed
hash = hash ^ byte_of_data
hash = hash * FNV_prime
return hash
FNV公式参数说明
1. FNV_offset_basis
这个参数的值是固定的,根据不同的位数选择不同的值作为hash的首次填充值
位数
十进制值
32
2166136261
64
14695981039346656037
128
144066263297769815596495629667062367629
256
1000292579