Go参考手册
加密 | crypto
crypto/hmac
import "crypto/hmac"
- 概述
- 索引
概述
hmac 包实现了美国联邦信息处理标准出版物198中定义的 Keyed-Hash Message Authentication Code(HMAC)。HMAC 是使用密钥签署消息的加密散列。接收器通过使用相同的密钥重新计算它来验证散列。
接收者应小心使用 Equal 来比较 MAC,以避免定时副信道:
// 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
文件包
hmac.go
func Equal(查看源代码)
func Equal(mac1, mac2 []byte) bool
平等地比较两个 MAC 平等而不泄露时间信息。
func New(查看源代码)
func New(h func() hash.Hash, key []byte) hash.Hash
New 使用给定的 hash.Hash 类型和密钥返回一个新的 HMAC 散列。
加密 | crypto相关
Go 是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。
主页 | https://golang.org/ |
源码 | https://go.googlesource.com/go |
发布版本 | 1.9.2 |