Go语言实现HMACSHA1加密

香蕉你个不呐呐丶 · · 6164 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

首先来说说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加密

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

6164 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传