为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 和 Go 中的 hmac 哈希不匹配

PHP 和 Go 中的 hmac 哈希不匹配

Go
交互式爱情 2023-06-05 19:46:37
我正在尝试连接到一个 API,该 API 对 API 使用过时的 hmac 哈希身份验证机制。举个例子:$signature = hash_hmac('sha256', $string_to_sign, $api_sec);与 Go 中生成的相比:h := hmac.New(sha256.New, []byte(authSecret))h.Write([]byte(stringToSign))signature := hex.EncodeToString(h.Sum(nil))当我使用相同stringToSign($string_to_sign)且相同的authSecret($api_sec)签名时,Go 结果生成的签名作为 API 的无效签名。但是,如果我使用 PHP 函数创建相同的内容,它就可以正常工作。我对去哪里看有点迷茫。
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您的输入数据一定有问题。


使用以下 PHP:


echo hash_hmac('sha256', 'data', 'key');

和下面的Go:


h := hmac.New(sha256.New, []byte("key"))

h.Write([]byte("data"))

signature := hex.EncodeToString(h.Sum(nil))

fmt.Println(signature)

我得到相同的结果5031fe3d989c6d1537a013fa6e739da23463fdaec3b70137d828e36ace221bd0


查看完整回答
反对 回复 2023-06-05
  • 1 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信