Package hmac

import "crypto/hmac"
Overview
Index

Overview ▾

软件包hmac实现了美国联邦信息处理标准出版物198中定义的"密钥哈希消息认证代码(HMAC)".HMAC是使用密钥对消息进行签名的加密哈希. 接收者通过使用相同的密钥重新计算哈希来验证哈希.

接收器应谨慎使用"等于"来比较MAC,以避免计时副信道:

// ValidMAC reports whether messageMAC is a valid HMAC tag for message.
func ValidMAC(message, messageMAC, key []byte) bool {
	mac := hmac.New(sha256.New, key)
	mac.Write(message)
	expectedMAC := mac.Sum(nil)
	return hmac.Equal(messageMAC, expectedMAC)
}

func Equal 1.1

func Equal(mac1, mac2 []byte) bool

相等比较两个MAC的相等性,而不泄漏时序信息.

func New

func New(h func() hash.Hash, key []byte) hash.Hash

New使用给定的hash.Hash类型和键返回新的HMAC哈希. 请注意,与标准库中的其他哈希实现不同,返回的Hash不实现encoding.BinaryMarshaler或encoding.BinaryUnmarshaler.

by  ICOPY.SITE