Функция crc32.NewIEEE
Функция crc32.NewIEEE из пакета crypto/crc32
создает новый объект хеша, реализующий интерфейс
hash.Hash32, для вычисления контрольной суммы
CRC-32 по алгоритму IEEE. Этот хеш можно использовать
для последовательного добавления данных через метод
Write и получения итоговой контрольной суммы
через метод Sum32.
Функция не принимает никаких параметров и возвращает
значение типа hash.Hash32. Полученный хеш
автоматически инициализируется с полиномом IEEE,
который соответствует таблице crc32.IEEETable.
Синтаксис
crc32.NewIEEE()
Пример
Давайте вычислим контрольную сумму CRC-32 IEEE для строки
'abcde' с использованием хеша, созданного
функцией crc32.NewIEEE:
package main
import (
"fmt"
"crypto/crc32"
)
func main() {
hash := crc32.NewIEEE()
hash.Write([]byte("abcde"))
res := hash.Sum32()
fmt.Println(res)
}
Результат выполнения кода:
858066361
Пример
Давайте вычислим контрольную сумму CRC-32 IEEE для строки
'12345' и выведем ее в шестнадцатеричном формате:
package main
import (
"fmt"
"crypto/crc32"
)
func main() {
hash := crc32.NewIEEE()
hash.Write([]byte("12345"))
res := hash.Sum32()
fmt.Printf("%x", res)
}
Результат выполнения кода:
"ec9f1b"
Пример
Давайте последовательно добавим данные в хеш и вычислим контрольную сумму для составной строки:
package main
import (
"fmt"
"crypto/crc32"
)
func main() {
hash := crc32.NewIEEE()
hash.Write([]byte("abc"))
hash.Write([]byte("de"))
res := hash.Sum32()
fmt.Println(res)
}
Результат выполнения кода:
858066361
Смотрите также
-
функцию
crc32.New,
которая создает хеш CRC-32 с заданным полиномом -
функцию
crc32.ChecksumIEEE,
которая вычисляет контрольную сумму CRC-32 IEEE без создания хеша -
функцию
crc32.Checksum,
которая вычисляет контрольную сумму с заданным полиномом -
функцию
hash.Hash32,
которая описывает интерфейс 32-битных хеш-функций