Функция fnv.New128

Функция fnv.New128 создает новый объект хеша, реализующий алгоритм FNV-128. Она возвращает интерфейс hash.Hash, который позволяет записывать данные и получать итоговое 128-битное хеш-значение. Первым параметром функция не принимает аргументов, так как используется стандартное начальное значение.

Синтаксис

gofnv.New128()

Пример

Давайте вычислим 128-битный хеш для строки "abcde":

gopackage main

import (
  "fmt"
  "hash/fnv"
)

func main() {
  h := fnv.New128()
  h.Write([]byte("abcde"))
  res := h.Sum(nil)
  fmt.Printf("%x", res)
}

Результат выполнения кода:

go"e4564dbe955515b8a1abb0c3e8b091e3"

Пример

Давайте вычислим хеш для пустой строки:

gopackage main

import (
  "fmt"
  "hash/fnv"
)

func main() {
  h := fnv.New128()
  h.Write([]byte(""))
  res := h.Sum(nil)
  fmt.Printf("%x", res)
}

Результат выполнения кода:

go"6c62272e07bb014262b821756295c58d"

Пример

Давайте вычислим хеш для строки "12345":

gopackage main

import (
  "fmt"
  "hash/fnv"
)

func main() {
  h := fnv.New128()
  h.Write([]byte("12345"))
  res := h.Sum(nil)
  fmt.Printf("%x", res)
}

Результат выполнения кода:

go"2c54a7a70fd8729326937826f1ddbcc9"

Смотрите также

  • функцию fnv.New32,
    которая создает 32-битный хеш FNV-1a
  • функцию fnv.New64,
    которая создает 64-битный хеш FNV-1a
  • функцию fnv.New128a,
    которая создает 128-битный хеш FNV-1a (альтернативная версия)
  • интерфейс hash.Hash,
    который реализуют все хеш-функции в Go