Функция crc64.Checksum
Функция crc64.Checksum вычисляет
64-битную контрольную сумму CRC-64 для переданных
данных. В первый параметр мы передаем срез байтов
[]byte, для которого необходимо вычислить
контрольную сумму, во второй параметр мы передаем
таблицу полинома crc64.Table,
которая определяет используемый алгоритм вычисления.
Функция возвращает значение типа uint64 —
64-битную контрольную сумму.
Синтаксис
crc64.Checksum(data []byte, tab *crc64.Table) uint64
Пример
Давайте вычислим контрольную сумму CRC64 для строки
"abcde", используя таблицу полинома ISO:
package main
import (
"crypto/crc64"
"fmt"
)
func main() {
data := []byte("abcde")
tab := crc64.MakeTable(crc64.ISO)
res := crc64.Checksum(data, tab)
fmt.Println(res)
}
Результат выполнения кода:
15042360528974577775
Пример
Давайте вычислим контрольную сумму CRC64 для пустого среза байтов:
package main
import (
"crypto/crc64"
"fmt"
)
func main() {
data := []byte{}
tab := crc64.MakeTable(crc64.ECMA)
res := crc64.Checksum(data, tab)
fmt.Println(res)
}
Результат выполнения кода:
0
Пример
Давайте вычислим контрольную сумму CRC64 для одной и той же строки с разными полиномами и сравним результаты:
package main
import (
"crypto/crc64"
"fmt"
)
func main() {
data := []byte("12345")
tabISO := crc64.MakeTable(crc64.ISO)
tabECMA := crc64.MakeTable(crc64.ECMA)
sumISO := crc64.Checksum(data, tabISO)
sumECMA := crc64.Checksum(data, tabECMA)
fmt.Println("ISO:", sumISO)
fmt.Println("ECMA:", sumECMA)
}
Результат выполнения кода:
"ISO: 10167293053543445188"
"ECMA: 14846868478967793242"
Смотрите также
-
функцию
crc64.New,
которая создает новый хеш-объект для вычисления CRC64 -
функцию
crc32.Checksum,
которая вычисляет 32-битную контрольную сумму CRC32 -
функцию
md5.Sum,
которая вычисляет хеш MD5 для данных -
функцию
sha256.Sum256,
которая вычисляет хеш SHA-256 для данных