PHPアプリケーションで動作するコードがあります。私は次のコードでURLに署名PHPで:Node.jsのHash_hmac相当のファイル
private static function __getHash($string)
{
return hash_hmac('sha1', $string, self::$__secretKey, true);
}
私はNode.jsのアプリケーションで同じようにURLに署名しようとしています。これは私がしようとしている何をされています
S3.prototype.getHash = function(string){
var key = this.secret_key;
var hmac = crypto.createHash('sha1', key);
hmac.update(string);
return hmac.digest('binary');
};
をしかし、私は次のエラーを取得しています:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
は、コードのこれらの作品は、同じことを行うのですか?何か不足していますか?
2つのハッシュの出力を比較して、同じことをするかどうかを確認します。 – Brody
ノードの 'crypto.createHash'メソッドはHMACではなくハッシュを計算するため、キーを取得しません。 – Chris
@Chris、理論的には、それを 'createHmac'に変更するとその問題は解決されますか? –