【发布时间】:2016-03-02 10:41:53
【问题描述】:
我正在尝试在 CBC 模式下使用 phpseclib AES 加密字符串(库的默认设置):
$cipher = new Crypt_AES();
$cipher->setKey('abcdefghijklmnop');
$cipher->setIV(crypt_random_string($cipher->getBlockLength() >> 3));
$cipher->encrypt("hello world")
然后,我需要使用 CryptoJS 或类似方法在 nodejs 上解密。我尝试了不同的库,但到目前为止还没有运气。我猜这个问题与每个库的编码输出不同有关。
有没有人有一个如何实现这种互操作性场景的工作示例?
可以使用其他库,例如 Crypto。
示例 Base64 输出为 MF9lCR4DaW1R0adIe03VEw==
所以思路是解密如下:
var helloWorld = CryptoJS.AES.decrypt("MF9lCR4DaW1R0adIe03VEw==", key).toString();
【问题讨论】:
-
当有一个内置且速度更快的第三方加密库时,为什么还要在节点中使用第三方加密库?
-
你能给出加密输出的例子吗(例如 hex 或 base64)?
-
@mscdex 刚刚根据您的要求用一些示例更新了问题。顺便说一句,节点的加密库也是一个选项..
-
解密不需要IV吗?
标签: node.js encryption aes phpseclib cryptojs