Функция fnv.New64
Функция fnv.New64 создает новый объект хеша,
реализующий алгоритм FNV-1a с 64-битным результатом.
Она возвращает интерфейс hash.Hash64, который
можно использовать для вычисления хеш-суммы данных.
В отличие от fnv.New64a, эта функция использует
алгоритм FNV-1, а не FNV-1a. Первый параметр не
требуется, так как функция не принимает аргументов.
Синтаксис
fnv.New64() hash.Hash64
Пример
Давайте создадим хеш и вычислим сумму для строки
"abcde" с помощью метода Sum:
package main
import (
"fmt"
"hash/fnv"
)
func main() {
h := fnv.New64()
h.Write([]byte("abcde"))
res := h.Sum64()
fmt.Println(res)
}
Результат выполнения кода:
14731002111905924178
Пример
Давайте вычислим хеш для пустой строки и для строки
"12345", чтобы увидеть разницу в результатах:
package main
import (
"fmt"
"hash/fnv"
)
func main() {
h := fnv.New64()
h.Write([]byte(""))
res1 := h.Sum64()
fmt.Println(res1)
h.Reset()
h.Write([]byte("12345"))
res2 := h.Sum64()
fmt.Println(res2)
}
Результат выполнения кода:
14695981039346656037
4626048229596280156
Пример
Давайте создадим хеш и вычислим сумму для слайса байт
с помощью метода Sum, который возвращает
срез байт, а не 64-битное число:
package main
import (
"fmt"
"hash/fnv"
)
func main() {
h := fnv.New64()
data := []byte("abcde")
h.Write(data)
res := h.Sum(nil)
fmt.Printf("%x", res)
}
Результат выполнения кода:
cc6bd3d9dc4bb065
Смотрите также
-
функцию
fnv.New64a,
которая создает хеш FNV-1a с 64-битным результатом -
функцию
fnv.New32,
которая создает хеш FNV-1 с 32-битным результатом -
функцию
fnv.New32a,
которая создает хеш FNV-1a с 32-битным результатом -
функцию
fnv.New128,
которая создает хеш FNV-1 с 128-битным результатом