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的首次填充值
位數十進位制值
2. fnv_prime
還沒有看懂,不過這不影響我們實現通用32位,64位的fnv演算法
位數十進位制值
3. hash
hash後的最總結果
4. byte_of_data
8位無符號整數
5. hashed
要加密的資料,需要轉換成byte_of_data然後迴圈^計算
fnv64 mysql FNV雜湊演算法
目錄 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...
64位 atol c linux C 庫函式
c 庫函式 atol 描述c 庫函式 long int atol const char str 把引數 str 所指向的字串轉換為乙個長整數 型別為 long int 型 宣告下面是 atol 函式的宣告。long int atol const char str 引數str 要轉換為長整數的字串。返...
網路位元組序轉換函式 64位
在網路程式設計裡,網路位元組序是big endian的,而大部分的pc的系統都是x86處理器系列,x86採用的是little endian,所以需要將 網路資料流轉換成本地資料流的話,需要進行位元組序的轉換。標準庫里提供了hlton 和nthl 兩個函式來支援轉換。hston unsigned sh...