Функция fnv.New32

Функция fnv.New32 создает новый объект хеша FNV-1a 32-bit, который реализует интерфейс hash.Hash32. В первый параметр функция не принимает никаких аргументов. Возвращаемый объект поддерживает методы Write для добавления данных, Sum для получения хеш-суммы и Reset для сброса состояния. Хеш FNV-1a используется для быстрого вычисления хеш-сумм и является простым, но эффективным алгоритмом.

Синтаксис

gofnv.New32()

Пример

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

gopackage main

import (
  "fmt"
  "hash/fnv"
)

func main() {
  h := fnv.New32()
  h.Write([]byte("abcde"))
  res := h.Sum32()
  fmt.Println(res)
}

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

go1226862731

Пример

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

gopackage main

import (
  "fmt"
  "hash/fnv"
)

func main() {
  h := fnv.New32()
  h.Write([]byte("12345"))
  res := h.Sum32()
  fmt.Println(res)
}

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

go464008899

Пример

Давайте покажем, как использовать метод Reset для сброса состояния хеша и повторного использования объекта:

gopackage main

import (
  "fmt"
  "hash/fnv"
)

func main() {
  h := fnv.New32()

  h.Write([]byte("abcde"))
  res1 := h.Sum32()
  fmt.Println(res1)

  h.Reset()
  h.Write([]byte("abcde"))
  res2 := h.Sum32()
  fmt.Println(res2)
}

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

go1226862731
1226862731

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

  • функцию fnv.New32a,
    которая создает хеш FNV-1 32-bit (не FNV-1a)
  • функцию fnv.New64,
    которая создает хеш FNV-1a 64-bit
  • интерфейс hash.Hash32,
    который реализует возвращаемый объект
  • функцию md5.New,
    которая создает хеш MD5 для вычисления хеш-сумм