Package hash

Overview ▾

包哈希提供了哈希函数的接口.

范例(BinaryMarshaler)

57d51a066f3a39942649cd9a76c77e97ceab246756ff3888659e6aa5a07f4a52
true

Index ▾

Examples

Package (BinaryMarshaler)

Package files

hash.go

type Hash

哈希是所有哈希函数实现的通用接口.

标准库中的哈希实现(例如hash / crc32和crypto / sha256)实现encoding.BinaryMarshaler和encoding.BinaryUnmarshaler接口. 封送散列实现可以将其内部状态保存起来,并在以后用于其他处理,而不必重新写入先前写入散列的数据. 散列状态可能包含原始形式的输入部分,用户应针对任何可能的安全隐患处理这些部分.

兼容性:将来对哈希或加密软件包的任何更改都将努力保持与使用以前版本编码的状态的兼容性. 也就是说,受安全修复等问题的影响,任何发行版的软件包都应该能够解码以任何先前发行版编写的数据. 有关背景信息,请参见Go兼容性文档: https : //golang.org/doc/go1compat

type Hash interface {
    // Write (via the embedded io.Writer interface) adds more data to the running hash.
    // It never returns an error.
    io.Writer

    // Sum appends the current hash to b and returns the resulting slice.
    // It does not change the underlying hash state.
    Sum(b []byte) []byte

    // Reset resets the Hash to its initial state.
    Reset()

    // Size returns the number of bytes Sum will return.
    Size() int

    // BlockSize returns the hash's underlying block size.
    // The Write method must be able to accept any amount
    // of data, but it may operate more efficiently if all writes
    // are a multiple of the block size.
    BlockSize() int
}

type Hash32

Hash32是所有32位哈希函数实现的通用接口.

type Hash32 interface {
    Hash
    Sum32() uint32
}

type Hash64

Hash64是所有64位哈希函数实现的通用接口.

type Hash64 interface {
    Hash
    Sum64() uint64
}

Subdirectories

Name Synopsis
..
adler32 软件包adler32实现了Adler-32校验和.
crc32 程序包crc32实现32位循环冗余校验或CRC-32校验和.
crc64 程序包crc64实现64位循环冗余校验或CRC-64校验和.
fnv 软件包fnv实现了FNV-1和FNV-1a,这是由Glenn Fowler,Landon Curt Noll和Phong Vo创建的非加密哈希函数.

by  ICOPY.SITE