Функция fnv.New32a
Функция fnv.New32a создает новый объект хеша FNV-1a с размером 32 бита.
Этот алгоритм является улучшенной версией FNV-1, которая использует другой порядок операций XOR и умножения.
Возвращаемый объект реализует интерфейс hash.Hash32, что позволяет использовать его в стандартных операциях хеширования.
Функция не принимает никаких параметров.
Синтаксис
fnv.New32a()
Пример
Давайте создадим хеш FNV-1a и вычислим его для строки 'abcde':
package main
import (
"fmt"
"hash/fnv"
)
func main() {
h := fnv.New32a()
h.Write([]byte("abcde"))
res := h.Sum32()
fmt.Println(res)
}
Результат выполнения кода:
1336283818
Пример
Давайте создадим хеш FNV-1a и вычислим его для строки '12345':
package main
import (
"fmt"
"hash/fnv"
)
func main() {
h := fnv.New32a()
h.Write([]byte("12345"))
res := h.Sum32()
fmt.Println(res)
}
Результат выполнения кода:
2012506137
Пример
Давайте покажем отличие FNV-1a от FNV-1 на примере строки 'abcde':
package main
import (
"fmt"
"hash/fnv"
)
func main() {
// FNV-1
h1 := fnv.New32()
h1.Write([]byte("abcde"))
res1 := h1.Sum32()
fmt.Println("FNV-1:", res1)
// FNV-1a
h2 := fnv.New32a()
h2.Write([]byte("abcde"))
res2 := h2.Sum32()
fmt.Println("FNV-1a:", res2)
}
Результат выполнения кода:
"FNV-1: 3870053955"
"FNV-1a: 1336283818"
Смотрите также
-
функцию
fnv.New32,
которая создает хеш FNV-1 32 бита -
функцию
fnv.New64,
которая создает хеш FNV-1 64 бита -
функцию
fnv.New64a,
которая создает хеш FNV-1a 64 бита -
интерфейс
hash.Hash,
который реализует возвращаемый объект