Giriş
Bu hash fonksiyonları kriptografik değildir! Dolasıyıla avalance effect göstermelerini beklememek gerekir.
DJB2, DJB2a, FNV-1,FNV-1a, Murmur2, MurmurHash3 gibi bir çok popüler hash fonksiyonu mevcut.
FNV1
FNV1 ve FNV1-a için sabitler aşağıda.
Şöyle yaparız.
Bu hash fonksiyonları kriptografik değildir! Dolasıyıla avalance effect göstermelerini beklememek gerekir.
DJB2, DJB2a, FNV-1,FNV-1a, Murmur2, MurmurHash3 gibi bir çok popüler hash fonksiyonu mevcut.
FNV1
FNV1 ve FNV1-a kodlaması çok basit hash metodları.
FNV1-a aşağıdaki gibi. FNV1 ile tek farkı xor işleminin prime ile çarpılmasından önce yapılması.
hash = FNV_offset_basis
for each octetOfData to be hashed
hash = hash xor octetOfData
hash = hash * FNV_prime
return hash
Hash Size Prime Offset
=========== =========================== =================================
32-bit 16777619 2166136261
64-bit 1099511628211 14695981039346656037
Murmur3Şöyle yaparız.
uint64_t MurmurHash3Mixer( uint64_t key ) {
key ^= (key >> 33);
key *= 0xff51afd7ed558ccd;
key ^= (key >> 33);
key *= 0xc4ceb9fe1a85ec53;
key ^= (key >> 33);
return key;
}
Hiç yorum yok:
Yorum Gönder