mysql fnv64函式 FNV雜湊演算法

2021-10-18 09:16:04 字數 893 閱讀 1503

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...