我花了过去6个小时来实现消息签名算法...但完全不起作用:
这是生成摘要的PHP代码:
$payload = "thisisanapple";
$signature = hash_hmac("sha1", $payload, "thisisarandomkey");
$data = base64_encode($signature);
// YzExZWRmZDliMjQzNTZjNzhlNmE3ZTdmMDE3ODJjNmMxMmM4ZTllMQ==
以下是在Node.js服务器上运行的JS代码,执行相同的操作:
var hmac = crypto.createHmac('sha1', "thisisarandomkey");
hmac.update("thisisanapple");
var signature = hmac.digest('base64');
// wR7f2bJDVseOan5/AXgsbBLI6eE=
我不知道这里出了什么问题... 我尝试了SHA256,但它们仍然不同。我还使用了OpenSSL生成的私钥,以明文和base64格式,结果仍然相同(密钥不同)。