0
私はAPIリクエストで認証を実装しようとしていますが、データの署名中に奇妙な問題が発生しています。 NodeJSのcrypto.createHmacからの出力は、PHPのhash_hmacの出力とは異なります。私はこれをPHPで実装しようとしていて、NodeJsからの応答は私が期待したものです。NodeJS crypto.createHmac SHA512が期待通りに動作しない
コードはNodeJSアプリケーション用のPHP
$signature = base64_encode(hash_hmac("sha512",$salt.'\n'.$returnUrl, $key));
echo $signature;
ためNodeJS
var crypto = require('crypto');
var hmac = crypto.createHmac('sha512', new Buffer(key, 'base64'));
var digest = hmac.update(salt + '\n' + returnUrl).digest();
var signature = digest.toString('base64');
console.log(signature);
コードのために私は
応答を期待されているVZ+gH+BVdZl6GIILfN5TFAxEIUqstiD5YwuQYTdk3R4LSxVzsAXPpPpn5MwHDoRllz5ll5iBpAOuO2DQ9nvtGA==
を得たが、PHPは私に異なる結果を与えた
NzNlNmFhNWUwOTg2OGQ3NzdhNjU0MWZmOTZhZDZjYmFiYjE4ZjMxZTc5OTk3MDI5ZGI1M2M3YmU3MjRiYTdiNjJmODM4NDA1NmMzNWZlOWE2NTVkZjhmZTg4MDg0MjA3ZmYzMjg1MGQxYzFiZDNkODA2M2MzZGVhOTRiZWMzNTA=
これは、予想とはまったく異なります。同じ応答を得るPHPでNodeJS暗号機能を再現できる方法はありますか?