繁体   English   中英

PHP / Javascript / JQuery-base64 sha256编码

[英]PHP / Javascript / JQuery - base64 sha256 encoding

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

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

其功能记录在这里:

http://php.net/manual/zh/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中找到与base64_encode等效的JavaScript。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM