PHP / Javascript / JQuery – base64 sha256编码

我正在尝试将API集成的PHP示例移植到Javascript / JQuery。 在PHP中,使用以下代码创建加密字符串:

$sig = base64_encode(hash_hmac('sha256', $sign, $this->secretAccessKey, true) 

其function记录在这里:

http://php.net/manual/en/function.hash-hmac.php

http://us.php.net/base64_encode

在Javascript中,我使用JQuery的加密来做HMAC片段:

 http://code.google.com/p/crypto-js/#HMAC-SHA256 

我想弄清楚我是否还需要做base64编码,因为它似乎已经在base64中了。 这是我目前正在运行的代码:

 var sigHash = Crypto.HMAC(Crypto.SHA256, sign, accessKey); 

它是否正确? 如何创建与上述PHP函数等效的javascript / jquery?

HMAC是一个标准。 SHA-256也是如此。 因此,无论哪种实施方式,其输出都必须相同。

Base64编码只能存在差异。 通常,非字母数字字符是+/ ,但您不能指望它。 我已经检查过,两个实现都使用相同的非字母数字字符。

但是,您仍应“手动”检查几千个字符串。 PHP中的实现经过了很好的测试。 但我不知道jQuery中的实现是否也是如此…

Base64编码输出的语法是:

 Crypto.util.bytesToBase64( Crypto.HMAC(Crypto.SHA256, sign, accessKey, { asBytes: true }) ); 

如果您需要获得PHP函数的JS实现的灵感,请查看PHPJS.org。 base64_encode的JavaScript等价物可以在: base64_encode找到。

Interesting Posts