Функция adler32.New

Функция adler32.New создает новый объект для вычисления контрольной суммы Adler-32. Она возвращает интерфейс hash.Hash32, который можно использовать для последовательного обновления хеша с помощью метода Write. Результат вычисления получается через метод Sum32. Функция не принимает никаких параметров и всегда возвращает новый хеш с начальным состоянием.

Синтаксис

goadler32.New() hash.Hash32

Пример использования

Давайте вычислим контрольную сумму Adler-32 для строки "abcde":

gopackage main

import (
  "fmt"
  "hash/adler32"
)

func main() {
  // Create new Adler-32 hash
  h := adler32.New()

  // Write data to hash
  h.Write([]byte("abcde"))

  // Get checksum
  res := h.Sum32()
  fmt.Println(res)
}

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

go917503

Пример с обновлением хеша

Давайте продемонстрируем, как можно обновлять хеш порциями данных:

gopackage main

import (
  "fmt"
  "hash/adler32"
)

func main() {
  // Create new Adler-32 hash
  h := adler32.New()

  // Write data in parts
  h.Write([]byte("abc"))
  h.Write([]byte("de"))
  h.Write([]byte("fgh"))

  // Get checksum
  res := h.Sum32()
  fmt.Println(res)
}

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

go1572864

Пример с пустыми данными

Рассмотрим, что возвращает функция при вычислении хеша для пустой строки:

gopackage main

import (
  "fmt"
  "hash/adler32"
)

func main() {
  // Create new Adler-32 hash
  h := adler32.New()

  // Write empty data
  h.Write([]byte(""))

  // Get checksum
  res := h.Sum32()
  fmt.Println(res)
}

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

go1

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

  • функцию adler32.Checksum,
    которая вычисляет контрольную сумму Adler-32 за один вызов
  • интерфейс hash.Hash32,
    который реализует возвращаемый объект хеша
  • функцию crc32.New,
    которая создает хеш CRC-32 для вычисления контрольных сумм
  • функцию fnv.New32,
    которая создает хеш FNV-32 с другим алгоритмом хеширования