import "hash/crc32"

このパッケージは、32ビット巡回冗長検査(cyclic redundancy check)、すなわちCRC-32チェックサムを実装しています。詳細については、http://en.wikipedia.org/wiki/Cyclic_redundancy_checkを参照ください。

パッケージファイル

crc32.go

定数

あらかじめ定義されている多項式。

const (
    // 最も一般的なCRC-32多項式。
    // 次で使用されています。 ethernet (IEEE 802.3), v.42, fddi, gzip, zip, png, mpeg-2, ...
    IEEE = 0xedb88320

    // Castagnoliの多項式は、iSCSIで使用されています。
    // IEEEより優れた誤り検出性能を持つ。
    // http://dx.doi.org/10.1109/26.231911
    Castagnoli = 0x82f63b78

    // Koopmanの多項式
    // これもまた、IEEEより優れた誤り検出性能を持つ。
    // http://dx.doi.org/10.1109/DSN.2002.1028931
    Koopman = 0xeb31d82e
)

CRC-32チェックサムのバイト長。

const Size = 4

変数

IEEETableは、IEEE多項式のテーブルです。

var IEEETable = MakeTable(IEEE)

Checksum関数

func Checksum(data []byte, tab *Table) uint32

Checksumは、dataに対して指定したテーブルの多項式で計算したCRC-32チェックサムを返します。

ChecksumIEEE関数

func ChecksumIEEE(data []byte) uint32

ChecksumIEEEは、dataに対しIEEE多項式で計算したCRC-32チェックサムを返します。

New関数

func New(tab *Table) hash.Hash32

Newは、指定したテーブルの多項式でCRC-32チェックサムを計算する、新しいhash.Hash32を作成します。

NewIEEE関数

func NewIEEE() hash.Hash32

NewIEEEは、IEEE多項式でCRC-32チェックサムを計算する、新しいhash.Hash32を作成します。

Update関数

func Update(crc uint32, tab *Table, p []byte) uint32

Updateは、p内のバイトをcrcに加算した結果を返します。

Table型

Tableは、効率的に処理を行うための多項式を表す256個のワードテーブルです。

type Table [256]uint32

MakeTable関数

func MakeTable(poly uint32) *Table

MakeTableは、規定された多項式で構築されたTableを返します。