go语言如何实现HMAC-SHA1

go语言如何对指定字符串HMAC-SHA1后,返回被加密的字符串?

共 9 个回复


cxh_nuaa_2001

貌似有现成的库吧

import "crypto/hmac"

# 0

bianweiall

github.com/fernet/fernet-go

这个可以用

# 1

writethesky

@cxh_nuaa_2001 我查了下资料,据说hmac和sha1和hmac-sha1不是一个东西

# 2

captain

@writethesky 是的,crypto/hmac 和 crypto/sha1 一起用就对了

# 3

writethesky

@captain 能给个例子么

# 4

captain

h := hmac.New(md5.New, []byte("key"))
h.Write([]byte("content"))
fmt.Println(hex.EncodeToString(h.Sum(nil)))
# 5

captain

sha1你把上面的md5改成对应的包就可以了

# 6

writethesky

@captain 多谢哈,我之前是写php的,见go口碑不错,就打算研究一下。感谢大家的帮助,我想问一下你们研究go是基于什么研究呢?是基于官方的指南吗?那个好像并不全,之前学php都是看帮助文档,不知道go有没有,当然了,英语不是特别好,肯起来有些吃力。或者您可不可以留个QQ啥的,有空想多和您交流一下

# 7

qloog

最后的 hex.EncodeToString 很关键,不然会乱码

# 8