如何在Node.Js中解密来自phpseclib的密码AES

时间:2017-01-11 13:05:59

标签: php node.js encryption phpseclib cryptojs

我尝试使用phpseclib加密(默认)

include 'AES.php';
$aes = new Crypt_AES();
$aes->setKey('abcdefghijklmnop');

$encrypt = $aes->encrypt("hello");
echo base64_encode($encrypt);
echo "<br />";
echo $aes->decrypt($encrypt);

输出:

CAX/zDb/Vdu/063a7fE+qQ==
hello

和Node.js进行解密

var CryptoJS = require("crypto-js");
var key = 'abcdefghijklmnop';

// Decrypt
var bytes  =     CryptoJS.AES.decrypt(CryptoJS.enc.Base64.parse('CAX/zDb/Vdu/063a7fE+qQ=='), key);
var plaintext = bytes.toString(CryptoJS.enc.Utf8);

console.log(plaintext);

但是,没有输出。

1 个答案:

答案 0 :(得分:0)

var CryptoJS = require("crypto-js");
var key = CryptoJS.enc.Utf8.parse('abcdefghijklmnop');
var iv = CryptoJS.enc.Hex.parse('00000000000000000000000000000000');

// Decrypt
var bytes  =     CryptoJS.AES.decrypt({ciphertext: CryptoJS.enc.Base64.parse('CAX/zDb/Vdu/063a7fE+qQ==')}, key, {iv: iv});
var plaintext = bytes.toString(CryptoJS.enc.Utf8);

console.log(plaintext);

这对我有用。