PHP / Javascript / JQuery-base64 sha256编码

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

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

其功能记录在这里:

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 })
);
上一篇:如何在k8s集群上新加机器


下一篇:PHP和C#HMAC SHA256