Go语言实现HMACSHA1加密

首先来说说SHA1加密

SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所NIST发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
--摘自维基百科

HMACSHA1是从 SHA1 哈希函数构造的一种键控哈希算法, 此 HMAC 进程将密钥与消息数据混合,使用哈希函数对混合结果进行哈希计算,将所得哈希值与该密钥混合,然后再次应用哈希函数。 输出的哈希值长度与SHA-1一致

总的来说,两者具体区别好像就是HMACSHA1加密需要密钥,而SHA1不需要。如果有大佬知道其它的区别,麻烦一定要留言告知。

这次主要是用Golang实现了HMACSHA1加密方法,通过公共密钥生成散列值并与调用方传来的散列值进行对比,以此确保数据的安全性。实现代码(简化版)如下

/*
//  keyStr 密钥
//  value  消息内容
*/
func HMACSHA1(keyStr, value string) string{

   key := []byte(keyStr)
   mac := hmac.New(sha1.New, key)
   mac.Write([]byte(value))
  //进行base64编码
   res := base64.StdEncoding.EncodeToString(mac.Sum(nil))

   return res
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容