2017-09-07 18 views
1

私はhash_hmacを使ってAPIに接続する必要があります。 hash_hmacのPHPドキュメントでは、4番目のパラメータbool $ raw_outputは、出力が生のバイナリデータ(true)か小文字のhexits(false)かを制御します。私のプログラムは、単にそのパラメータをtrueに設定するだけでPHPで動作します。 (?Iをすることができますか):RAW BINARY出力のPHPのhash_hmac()に相当するGoogle Appsスクリプトですか?

これはPHPで動作するものである

$signature = base64_encode(hash_hmac('SHA256', $signature_string, $private_key, true)) 

Google Appsの私は任意のJavaScriptのライブラリを使用することはできませんが、この機能があります:Utilities.computeHmacSha256Signatureしかしhttps://developers.google.com/apps-script/reference/utilities/utilities#computehmacsha256signaturevalue-key

PHPには「真の」オプションがありませんので、生のバイナリデータは出力されません。

Google Appsと同じ値をPHPで取得するにはどうすればよいですか?

これは私がGoogle Appsに持っているものですが、明らかにそれが出力生のバイナリデータません:

var signature = Utilities.computeHmacSha256Signature(signature_string, private_key); 

を私は六角への応答を変換する方法を見つけました(FALSEのPHPと同等の代わりに、 TRUE、それはどの近いソリューションに私を持っていない

// convert to hex 
var signature_in_hex = signature.reduce(function(str,chr) { 
chr = (chr < 0 ? chr + 256 : chr).toString(16); 
return str + (chr.length==1?'0':'') + chr; 
},''); 
+0

はおそらく、PHPとGAppScriptの両方からのいくつかの例の出力は、私たちが問題を把握に役立つだろう投稿? – Sammitch

+0

私はここで推測していますが、Utilities.computeHmacSha256Signature()によって生成されたバイト配列をUtilities.newBlob()に渡していますか? –

+0

https://stackoverflow.com/questions/17160896/binary-output-from-google-script-hmacencription?rq=1を見ると、解決策ではないことがわかります... –

答えて

関連する問題