Функция crc32.Checksum

Функция crc32.Checksum вычисляет 32-битную контрольную сумму CRC-32 для переданных данных. В первый параметр мы передаем срез байт, для которого нужно вычислить контрольную сумму, во второй параметр мы передаем таблицу полинома, используемую для вычислений. Функция возвращает значение типа uint32 - вычисленную контрольную сумму.

Синтаксис

gocrc32.Checksum(data []byte, tab *crc32.Table) uint32

Пример

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

gopackage main

import (
  "fmt"
  "hash/crc32"
)

func main() {
  data := []byte("abcde")
  checksum := crc32.Checksum(data, crc32.IEEETable)
  fmt.Println(checksum)
}

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

go858029382

Пример

Давайте вычислим контрольную сумму CRC-32 для пустого среза байт:

gopackage main

import (
  "fmt"
  "hash/crc32"
)

func main() {
  data := []byte("")
  checksum := crc32.Checksum(data, crc32.IEEETable)
  fmt.Println(checksum)
}

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

go0

Пример

Давайте вычислим контрольную сумму с использованием таблицы Castagnoli:

gopackage main

import (
  "fmt"
  "hash/crc32"
)

func main() {
  data := []byte("abcde")
  checksum := crc32.Checksum(data, crc32.MakeTable(crc32.Castagnoli))
  fmt.Println(checksum)
}

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

go3225895454

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

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