Функция crc32.ChecksumIEEE
Функция crc32.ChecksumIEEE вычисляет контрольную сумму
CRC-32 для переданных данных. Алгоритм основан на полиноме
IEEE (0xEDB88320), который широко применяется в сетевых
протоколах и форматах файлов. В первый параметр передается
срез байтов []byte, для которого рассчитывается
контрольная сумма. Функция возвращает значение типа
uint32 — 32-битное число, представляющее
контрольную сумму.
Синтаксис
crc32.ChecksumIEEE(data []byte) uint32
Пример
Давайте вычислим контрольную сумму для строки "hello":
package main
import (
"fmt"
"hash/crc32"
)
func main() {
data := []byte("hello")
res := crc32.ChecksumIEEE(data)
fmt.Println(res)
}
Результат выполнения кода:
907060870
Пример
Рассчитаем контрольную сумму для пустого среза байтов:
package main
import (
"fmt"
"hash/crc32"
)
func main() {
data := []byte{}
res := crc32.ChecksumIEEE(data)
fmt.Println(res)
}
Результат выполнения кода:
0
Пример
Сравним контрольные суммы для разных данных. Даже небольшое изменение приводит к совершенно другому результату:
package main
import (
"fmt"
"hash/crc32"
)
func main() {
data1 := []byte("hello")
data2 := []byte("world")
res1 := crc32.ChecksumIEEE(data1)
res2 := crc32.ChecksumIEEE(data2)
fmt.Println(res1, res2)
}
Результат выполнения кода:
907060870 2291510195
Смотрите также
-
функцию
crc32.Checksum,
которая вычисляет CRC-32 с произвольным полиномом -
функцию
crc32.NewIEEE,
которая создает хеш для поточного вычисления CRC-32 IEEE -
функцию
adler32.Checksum,
которая вычисляет контрольную сумму Adler-32 -
функцию
crc64.Checksum,
которая вычисляет контрольную сумму CRC-64