Gre*_*ain 1 javascript json cryptography node.js cryptojs
我正在使用 nodejs 服务器,并且我使用加密节点模块成功加密/解密(使用 IV 和密钥)Base64 中的 json。
但是,当我将带有 AES 128 CTR json 的发送操作发送到 Web 客户端时,我正确收到了带有 base64 数据加密的 json,但是我的问题是我不想解密它。
在 CryptoJS 文档中,我找到了一个这样的例子:
var text = "Hello world";
var key = CryptoJS.enc.Base64.parse("myKey");
var iv  = CryptoJS.enc.Base64.parse("myIv");
var encrypted = CryptoJS.AES.encrypt(text, key, {iv: iv});
console.log(encrypted); // print something like that s {init: function, $super: s, ciphertext: l.WordArray.t.extend.init, key: s, iv: s…}
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {iv: iv});
console.log(decrypted.toString(CryptoJS.enc.Utf8)); // print Hello world
我们可以轻松解密“Hello world”,因为它是由我的 Web 客户端中的 CryptoJS 加密的。但我的问题是我想解密不使用 CryptoJS 加密系统的数据。
我想做这样的事情:
var text = "myJsonEncryptedInBase64";
var key = CryptoJS.enc.Base64.parse("myKey");
var iv  = CryptoJS.enc.Base64.parse("myIv");
var decrypted = CryptoJS.AES.decrypt(text, key, {iv: iv});
console.log(decrypted.toString(CryptoJS.enc.Utf8)); //print my decrypted json
我有一个错误,因为 CryptoJS 解密方法使用这样的数组数据:
s {init: function, $super: s, ciphertext: l.WordArray.t.extend.init, key: s, iv: s…}
你能帮我么 ?
非常感谢。
编辑 :
Node.js 输入:{name:"toto", age:"15"}(在 Base64 中使用加密加密)。
Node.js 输出:mfrpKm5k5YtGkX6rp9/Bmz+cCkcz5tiLKQcxmOpDUow=
将输出抛出 socket.io 到 Web 客户端。
Web 客户端 JS 输入:mfrpKm5k5YtGkX6rp9/Bmz+cCkcz5tiLKQcxmOpDUow=
Web 客户端 JS 输出:{name:"toto", age:"15"}(使用相同的 IV 和 KEY 解密)
这对我有用:
var CryptoJS = require("crypto-js");
var data = JSON.stringify({abc: 'xyz'});
var encrypted = CryptoJS.AES.encrypt(data, "my-secret");
console.log(encrypted.toString());
var decrypted = CryptoJS.AES.decrypt(encrypted, "my-secret");
var object = JSON.parse(decrypted.toString(CryptoJS.enc.Utf8));
console.log(object);
console.log(object.abc);
希望这是你想做的。这也适用于 Base64 输入。
| 归档时间: | 
 | 
| 查看次数: | 12054 次 | 
| 最近记录: |