golang中crypto/hmac包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang中crypto/hmac包相关的知识,希望对你有一定的参考价值。

参考技术A hmac包实现了U.S.Federal Infomation Processing Standards Publication 198规定的HMAC(加密哈希信息认证码)。

HMAC是使用key标记信息的加密hash。接收者使用相同的key逆运算来认证hash。
出于安全目的,接收者应使用Equal函数比较认证码:

这个包一共提供了两个对外公开的函数:

func Equal(mac1, mac2 []byte) bool
比较两个MAC是否相同,而不会泄露对比时间信息。(以规避时间侧信道攻击;指通过计算比较时花费的时间的长短来获取密码的信息,用于密码破解)

func New(h func() hash.Hash, key []byte) hash.Hash
New函数返回一个采用hash.Hash作为底层hash接口、key作为密钥的HMAC算法的hash接口。

Node.js 内置模块crypto加密模块 HMAC

HMAC:哈希消息认证码 ( Hash-based Message Authentication Code )

HMAC是密钥相关的哈希算法

使用 HMAC 进行加密的Node实现的一种方法:

"use strict";
const crypto = require("crypto");
//实例化一个hmac对象,使用md5进行加密,加密密钥是secret-key
const hmac = crypto.createHmac("md5", "secret-key");
//使用hmac的update方法添加需要加密的内容 hmac.update(
"This is what needs to be encrypted");
//将加密内容转换成十六进制数,并在控制台打印 console.log(hmac.digest(
"hex"));

 

注:

1.使用hmac加密是需要密钥的;

2.密钥在crypto的createHmac方法的第二个参数传入;

3.密钥不同,经过加密得到的结果就不同

4.使用hmac对数据进行加密的 其它方法

 

以上是关于golang中crypto/hmac包的主要内容,如果未能解决你的问题,请参考以下文章

将crypto hmac转换为crypto-js hmac字符串

nodeJS之crypto模块md5和Hmac加密

golang 中的md5 hmacsha1算法的简单实现

Node.js 内置模块crypto加密模块 HMAC

React-Native + crypto:如何在 React-Native 中生成 HMAC?

如何使用Node.js Crypto创建HMAC-SHA1哈希?