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
}

你可能感兴趣的:(Go语言实现HMACSHA1加密)