php - 如何从 Node.Js 中的 phpseclib 解密 AES 密码

标签 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);

但是没有任何输出。

最佳答案

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);

这对我有用。

关于php - 如何从 Node.Js 中的 phpseclib 解密 AES 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41591768/

相关文章:

php - 使用 PHP cmd 时图像不会上传到 FTP 文件

node.js - 从一组 gulp 任务运行时,NPM del 抛出 ENOTEMPTY 错误

java - 如何将 String 转换为 PublicKey?

node.js - 在 Strongloop 中同时保存多个模型

javascript - Nodejs 网站不显示第二个 mysql 表值

javascript - 无法阻止点击登录后密码在密码字段中自动延长

php - 在php中通过mcrypt生成一次性 token ?

关于属性更改的 Php 运行方法

php - 我想在我的按钮上使用悬停。该按钮在我的 php 代码中

php - 网站的 SQL 数据库存储有哪些替代方案?