Documentation ¶
Index ¶
- Constants
- func F(h *[8]uint64, m [16]uint64, c [2]uint64, final bool, rounds uint32)
- func New(size int, key []byte) (hash.Hash, error)
- func New256(key []byte) (hash.Hash, error)
- func New384(key []byte) (hash.Hash, error)
- func New512(key []byte) (hash.Hash, error)
- func Sum256(data []byte) [Size256]byte
- func Sum384(data []byte) [Size384]byte
- func Sum512(data []byte) [Size]byte
- type XOF
Constants ¶
const ( // BlockSize 128字节,等于1024位 BlockSize = 128 // Size 64字节,等于512位,BLAKE2b-512的哈希长度 Size = 64 // Size384 48字节,等于384位,BLAKE2b-384的哈希长度 Size384 = 48 // Size256 32字节,等于256位,BLAKE2b-256的哈希长度 Size256 = 32 )
定义一些常量
const (
// OutputLengthUnknown 可以作为NewXOF的大小参数,表示输出的长度事先不知道。
OutputLengthUnknown = 0
)
Variables ¶
This section is empty.
Functions ¶
func F ¶
F ♏ |作者:吴翔宇| 🍁 |日期:2022/11/16|
F F是BLAKE2b的一个压缩函数。它把状态向量`h`、信息块向量`m`、偏移计数器`t`、最终块指示标志`f`和 轮数`rounds`作为一个参数。作为第一个参数提供的状态向量被该函数修改。
func New ¶
New ♏ |作者:吴翔宇| 🍁 |日期:2022/11/16|
New 方法返回一个新的 hash.Hash 来计算具有自定义长度的 BLAKE2b 校验和。 该方法接受两个参数,第一个参数是一个int型的size,第二个参数是一个字节切片key,我们可以将其称为密钥, 其中size的值可以被设置为1到64中的任何一个整数,但强烈建议使用等于或大于以下的两个值:
- 32:如果将size设为32,则可以将BLAKE2b作为哈希函数使用,然后key应当是nil的。
- 16:如果将size设为16,则可以将BLAKE2b用作MAC函数,在这种情况下,key的长度应当介于16到64之间。
当key为nil时,返回的 hash.Hash 实现了 BinaryMarshaler 和 BinaryUnmarshaler。
func New256 ¶
New256 ♏ |作者:吴翔宇| 🍁 |日期:2022/11/16|
New256 方法接受一个字节切片key作为输入参数,返回一个新的 hash.Hash 来计算 BLAKE2b-256 校验和。当输入的key等于nil计算得到的哈希值变成一个MAC。key的长度必须在0到64字节之间。
func New384 ¶
New384 ♏ |作者:吴翔宇| 🍁 |日期:2022/11/16|
New384 方法接受一个字节切片key作为输入参数,返回一个新的 hash.Hash 来计算 BLAKE2b-384 校验和。当输入的key等于nil计算得到的哈希值变成一个MAC。key的长度必须在0到64字节之间。
func New512 ¶
New512 ♏ |作者:吴翔宇| 🍁 |日期:2022/11/16|
New512 方法接受一个字节切片key作为输入参数,返回一个新的 hash.Hash 来计算 BLAKE2b-512 校验和。当输入的key等于nil计算得到的哈希值变成一个MAC。key的长度必须在0到64字节之间。
Types ¶
type XOF ¶
type XOF interface { // Writer 吸收更多的数据到哈希的状态中。如果在 "读 "之后调用它,就会出现恐慌。 io.Writer // Reader 从哈希中读取更多的输出,如果达到极限,它将返回io.EOF。 io.Reader // Clone 返回当前状态下的XOF的副本。 Clone() XOF // Reset 将XOF重置成它的初始状态。 Reset() }
XOF ♏ |作者:吴翔宇| 🍁 |日期:2022/11/17|
XOF 定义了支持任意长度输出的哈希函数的接口。
func NewXOF ¶
NewXOF ♏ |作者:吴翔宇| 🍁 |日期:2022/11/17|
NewXOF 方法创建一个新的可变输出长度的哈希函数,这个哈希函数要么产生一个已知的字节数(1 <= size < 2**32-1)长度的值, 要么产生一个未知的字节数(size == OutputLengthUnknown)长度的值,在后一种情况下,适用256GiB的绝对限制。 NewXOF 方法接受两个参数,第一个参数为整数型的size,size就是前面提到的size,例如:(1 <= size < 2**32-1),另一个 参数是一个字节切片key,如果key非空的话,则会将哈希函数转换成MAC,密钥的长度必须在0到32字节之间。