gpt4 book ai didi

go - 从 Golang 中的字符串创建 HMAC_256

转载 作者:IT王子 更新时间:2023-10-29 02:33:58 27 4
gpt4 key购买 nike

我正在尝试从消息和 secret 生成 HMAC 256 哈希。但是当我退回它时,它是不正确的。

func makeSig(s Signature) string {
secretHash := md5.New()
secretHash.Write([]byte("secret"))
key := secretHash.Sum(nil)
fmt.Println("The secret key is ", hex.EncodeToString(key))

message := strings.Join([]string{"one", "two", "three"}, "")
fmt.Println("The message is ", message)

sig := hmac.New(sha256.New, key)
sig.Write([]byte(message))
return hex.EncodeToString(sig.Sum(nil))
}

不知道哪里不对,请指教。

最佳答案

您正在打印“ key ”的十六进制编码版本,但您使用的是该 key 的原始未编码字节。

示例中您的 key 打印为:

5ebe2294ecd0e0f08eab7690d2a6ee69

但是你把这个给了 hmac:

[]byte{0x5e, 0xbe, 0x22, 0x94, 0xec, 0xd0, 0xe0, 0xf0, 0x8e, 0xab, 0x76, 0x90, 0xd2, 0xa6, 0xee, 0x69}

作为一个字符串,看起来像:

"^\xbe"\x94\xec\xd0\xe0\xf0\x8e\xabv\x90\xd2\xa6\xeei"

直接使用字符串应该显示出不同之处:http://play.golang.org/p/wteqLNcnTV

哪个打印

3f0ee534c3d86cb16f4413fe1a76a12f94449f751f7d632cd87f24b94e76c710

关于go - 从 Golang 中的字符串创建 HMAC_256,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31838189/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com