Функция crc64.New
Функция crc64.New создает новый экземпляр хеша CRC-64,
который реализует интерфейс hash.Hash64.
В единственный параметр функция принимает таблицу полинома
crc64.Table, которая определяет алгоритм вычисления.
Стандартная библиотека предоставляет две предопределенные таблицы:
crc64.ECMA и crc64.ISO. Возвращаемое значение
позволяет накапливать данные по частям с помощью метода Write
и получать итоговую контрольную сумму методом Sum64.
Синтаксис
func New(tab *crc64.Table) hash.Hash64
Пример
Давайте вычислим контрольную сумму CRC-64 для строки "abcde"
с использованием таблицы crc64.ISO:
package main
import (
"crypto/crc64"
"fmt"
)
func main() {
h := crc64.New(crc64.ISO)
h.Write([]byte("abcde"))
res := h.Sum64()
fmt.Println(res)
}
Результат выполнения кода:
11438860175727340743
Пример
Давайте вычислим контрольную сумму CRC-64 для строки "12345"
с использованием таблицы crc64.ECMA:
package main
import (
"crypto/crc64"
"fmt"
)
func main() {
h := crc64.New(crc64.ECMA)
h.Write([]byte("12345"))
res := h.Sum64()
fmt.Println(res)
}
Результат выполнения кода:
11915655322673439846
Пример
Давайте вычислим контрольную сумму для данных, которые передаются по частям:
package main
import (
"crypto/crc64"
"fmt"
)
func main() {
h := crc64.New(crc64.ISO)
h.Write([]byte("abc"))
h.Write([]byte("de"))
res := h.Sum64()
fmt.Println(res)
}
Результат выполнения кода:
11438860175727340743
Пример
Давайте получим текущее состояние хеша в виде среза байт
с помощью метода Sum:
package main
import (
"crypto/crc64"
"fmt"
)
func main() {
h := crc64.New(crc64.ISO)
h.Write([]byte("abcde"))
res := h.Sum(nil)
fmt.Printf("%x", res)
}
Результат выполнения кода:
"9eba1aa70895d2c7"
Смотрите также
-
функцию
crc64.Checksum,
которая вычисляет контрольную сумму CRC-64 за один вызов -
интерфейс
hash.Hash64,
который реализует возвращаемое значение -
функцию
crc32.New,
которая создает хеш CRC-32 -
функцию
sha256.New,
которая создает хеш SHA-256