我需要验证来自 ankoder.com 的回调的签名,他们提供以下描述:
它是您的私钥的 Base64 编码 HMAC-SHA1 摘要的 URL 转义字符串和 URL 未转义消息。
$passkey = urlencode(base64_encode(hash_hmac('sha1', urldecode($str), $private_key, true)));
他们提供了以下 Ruby 示例
encoded_signature = CGI.escape Base64.encode64(HMAC::SHA1::digest(private_key, CGI.unescape(message))).strip
我在从回调返回的样本数据上运行它,但没有得到相同的签名。如何在 PHP 中复制 Ruby 代码?
编辑 问题是发送的尾随空格。