Функция fnv.New32
Функция fnv.New32 создает новый объект хеша FNV-1a 32-bit,
который реализует интерфейс hash.Hash32. В первый параметр
функция не принимает никаких аргументов. Возвращаемый объект
поддерживает методы Write для добавления данных,
Sum для получения хеш-суммы и Reset для сброса состояния.
Хеш FNV-1a используется для быстрого вычисления хеш-сумм и
является простым, но эффективным алгоритмом.
Синтаксис
fnv.New32()
Пример
Давайте вычислим хеш-сумму для строки "abcde":
package main
import (
"fmt"
"hash/fnv"
)
func main() {
h := fnv.New32()
h.Write([]byte("abcde"))
res := h.Sum32()
fmt.Println(res)
}
Результат выполнения кода:
1226862731
Пример
Давайте вычислим хеш-сумму для строки "12345":
package main
import (
"fmt"
"hash/fnv"
)
func main() {
h := fnv.New32()
h.Write([]byte("12345"))
res := h.Sum32()
fmt.Println(res)
}
Результат выполнения кода:
464008899
Пример
Давайте покажем, как использовать метод Reset для сброса состояния
хеша и повторного использования объекта:
package 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)
}
Результат выполнения кода:
1226862731
1226862731
Смотрите также
-
функцию
fnv.New32a,
которая создает хеш FNV-1 32-bit (не FNV-1a) -
функцию
fnv.New64,
которая создает хеш FNV-1a 64-bit -
интерфейс
hash.Hash32,
который реализует возвращаемый объект -
функцию
md5.New,
которая создает хеш MD5 для вычисления хеш-сумм