Функция crc32.NewIEEE

Функция crc32.NewIEEE из пакета crypto/crc32 создает новый объект хеша, реализующий интерфейс hash.Hash32, для вычисления контрольной суммы CRC-32 по алгоритму IEEE. Этот хеш можно использовать для последовательного добавления данных через метод Write и получения итоговой контрольной суммы через метод Sum32.

Функция не принимает никаких параметров и возвращает значение типа hash.Hash32. Полученный хеш автоматически инициализируется с полиномом IEEE, который соответствует таблице crc32.IEEETable.

Синтаксис

gocrc32.NewIEEE()

Пример

Давайте вычислим контрольную сумму CRC-32 IEEE для строки 'abcde' с использованием хеша, созданного функцией crc32.NewIEEE:

gopackage main

import (
  "fmt"
  "crypto/crc32"
)

func main() {
  hash := crc32.NewIEEE()
  hash.Write([]byte("abcde"))
  res := hash.Sum32()
  fmt.Println(res)
}

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

go858066361

Пример

Давайте вычислим контрольную сумму CRC-32 IEEE для строки '12345' и выведем ее в шестнадцатеричном формате:

gopackage main

import (
  "fmt"
  "crypto/crc32"
)

func main() {
  hash := crc32.NewIEEE()
  hash.Write([]byte("12345"))
  res := hash.Sum32()
  fmt.Printf("%x", res)
}

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

go"ec9f1b"

Пример

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

gopackage main

import (
  "fmt"
  "crypto/crc32"
)

func main() {
  hash := crc32.NewIEEE()
  hash.Write([]byte("abc"))
  hash.Write([]byte("de"))
  res := hash.Sum32()
  fmt.Println(res)
}

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

go858066361

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

  • функцию crc32.New,
    которая создает хеш CRC-32 с заданным полиномом
  • функцию crc32.ChecksumIEEE,
    которая вычисляет контрольную сумму CRC-32 IEEE без создания хеша
  • функцию crc32.Checksum,
    которая вычисляет контрольную сумму с заданным полиномом
  • функцию hash.Hash32,
    которая описывает интерфейс 32-битных хеш-функций