首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

crypto/hmac

  • import "crypto/hmac"
  • 概述
  • 索引

概述

hmac 包实现了美国联邦信息处理标准出版物198中定义的 Keyed-Hash Message Authentication Code(HMAC)。HMAC 是使用密钥签署消息的加密散列。接收器通过使用相同的密钥重新计算它来验证散列。

接收者应小心使用 Equal 来比较 MAC,以避免定时副信道:

代码语言:txt
复制
// CheckMAC 报告 messageMAC 是否是消息的有效 HMAC 标记。
func CheckMAC(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(mac1, mac2 []byte) bool
  • func New(h func() hash.Hash, key []byte) hash.Hash

文件包

代码语言:javascript
复制
func Equal(mac1, mac2 []byte) bool

平等地比较两个 MAC 平等而不泄露时间信息。

代码语言:javascript
复制
func New(h func() hash.Hash, key []byte) hash.Hash

New 使用给定的 hash.Hash 类型和密钥返回一个新的 HMAC 散列。

扫码关注腾讯云开发者

领取腾讯云代金券