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