github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/hash/adler32/adler32.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // Package adler32はAdler-32チェックサムを実装しています。 6 // 7 // これはRFC 1950で定義されています: 8 // 9 // Adler-32はバイトごとに累積される2つの合計で構成されています: s1は 10 // すべてのバイトの合計で、s2はすべてのs1の値の合計です。両方の合計は 11 // 65521でモジュロ演算が行われます。s1は1で初期化され、s2はゼロです。Adler-32 12 // チェックサムはs2*65536 + s1として、最も重要なバイトを最初に(ネットワークの)順序で格納されます。 13 package adler32 14 15 import ( 16 "github.com/shogo82148/std/hash" 17 ) 18 19 // Adler-32チェックサムのバイト単位のサイズ。 20 const Size = 4 21 22 // NewはAdler-32チェックサムを計算する新しいhash.Hash32を返します。 23 // Sumメソッドは値をビッグエンディアンのバイト順で配置します。 24 // 返されるHash32は、 [encoding.BinaryMarshaler] と [encoding.BinaryUnmarshaler] も実装しており、 25 // ハッシュの内部状態をマーシャリングおよびアンマーシャリングすることができます。 26 func New() hash.Hash32 27 28 // ChecksumはdataのAdler-32チェックサムを返します。 29 func Checksum(data []byte) uint32