РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1235 of 1593 menu

Функция fnv.New128a

Функция fnv.New128a из пакета crypto/fnv возвращает новый объект, реализующий интерфейс hash.Hash для вычисления 128-битной хеш-суммы по алгоритму FNV-1a. Этот алгоритм отличается от стандартного FNV-1 тем, что операция XOR выполняется до умножения, что дает лучшее распределение хешей. Функция не принимает никаких параметров и всегда возвращает новый экземпляр хеша с начальным состоянием.

Синтаксис

fnv.New128a()

Пример

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

package main import ( "crypto/fnv" "fmt" ) func main() { h := fnv.New128a() h.Write([]byte("hello world")) res := h.Sum(nil) fmt.Printf("%x", res) }

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

"779a65e7023cdb7c3fc39c2b6c3b4f60"

Пример

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

package main import ( "crypto/fnv" "fmt" ) func main() { h := fnv.New128a() h.Write([]byte("12345")) res := h.Sum(nil) fmt.Println(res) }

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

"[0 0 0 0 0 0 0 0 24 48 177 91 215 42 131 60]"

Пример

Используем метод Sum для получения хеша в виде 16-байтового слайса без изменения состояния:

package main import ( "crypto/fnv" "fmt" ) func main() { h := fnv.New128a() h.Write([]byte("abcde")) res := h.Sum(make([]byte, 0, 16)) fmt.Printf("%x", res) }

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

"5372dc3b7fecbcff3649a01f41d06b3d"

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

  • функцию fnv.New128,
    которая создает хеш FNV-1 на 128 бит
  • функцию fnv.New32a,
    которая создает 32-битный хеш FNV-1a
  • функцию fnv.New64a,
    которая создает 64-битный хеш FNV-1a
  • интерфейс hash.Hash,
    который реализует возвращаемый объект
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить