定義済みの多項式
const ( // IEEE は,最も一般的な CRC-32 多項式です。 // イーサネット (IEEE 802.3), v.42, fddi, gzip, zip, png などで使用されます。 IEEE = 0xedb88320 // iSCSI で使用される Castagnoli の多項式。 // IEEE よりもエラー検出特性が優れています。 // https://dx.doi.org/10.1109/26.231911 Castagnoli = 0x82f63b78 // コープマンの多項式 IEEE よりも優れたエラー検出特性を持ちます。 // https://dx.doi.org/10.1109/DSN.2002.1028931 Koopman = 0xeb31d82e )
CRC-32 チェックサムのサイズ (バイト単位) 。
const Size = 4
IEEETable は IEEE 多項式のテーブルです。
var IEEETable = simpleMakeTable(IEEE)
func Checksum(data []byte, tab *Table) uint32
Checksum (チェックサム) は,表で表される多項式を使用してデータの CRC-32 チェックサムを返します。
func ChecksumIEEE(data []byte) uint32
ChecksumIEEE は, IEEE 多項式を使用してデータの CRC-32 チェックサムを返します。
func New(tab *Table) hash.Hash32
New は,新しいハッシュを作成します。 Hash32 は, Table で表される多項式を使用して CRC-32 チェックサムを計算します。 その Sum メソッドはビッグエンディアンのバイト順で値をレイアウトします。 返された Hash32 は,ハッシュの内部状態を整列化および非整列化するために encoding.BinaryMarshaler および encoding.BinaryUnmarshaler も実装します。
func NewIEEE() hash.Hash32
NewIEEE は,新しいハッシュを作成します。 Hash32 は, IEEE 多項式を使用して CRC-32 チェックサムを計算します。 その Sum メソッドはビッグエンディアンのバイト順で値をレイアウトします。 返された Hash32 は,ハッシュの内部状態を整列化および非整列化するために encoding.BinaryMarshaler および encoding.BinaryUnmarshaler も実装します。
func Update(crc uint32, tab *Table, p []byte) uint32
Update は, p のバイト数を crc に追加した結果を返します。
Table は,効率的な処理のための多項式を表す 256 ワードの表です。
type Table [256]uint32
func MakeTable(poly uint32) *Table
MakeTable は,指定された多項式から構築された Table を返します。 この表の内容は変更してはいけません。
▹ 例