【发布时间】:2020-07-08 15:13:12
【问题描述】:
我正在尝试连接到使用过时的 hmac 哈希身份验证机制的 API。
举个例子:
$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 函数创建相同的函数,它就可以正常工作。我有点迷失在哪里看。
【问题讨论】: