如何在CryptoJS(nodejs/web浏览器)中解密AES 128
How to decrypt AES 128 in CryptoJS (nodejs / web browser)
我使用的是一个nodejs服务器,我成功地用加密节点模块在Base64中加密/解密了一个json(使用IV&Key)。
然而,当我用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+ckcz5tiLKQcxmOpDUow=
向web客户端发出输出throw socket.io。
Web客户端JS输入:mfrpKm5k5YtGkX6rp9/Bmz+ckcz5tiLKQcxmOpDUow=
Web客户端JS输出:{名称:"toto",年龄:"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输入。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 有时数据是't显示在浏览器中
- 使图像在单击时展开到不大于浏览器
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- 不同浏览器中的空白字符正则表达式行为
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何临时暂停浏览器渲染,然后恢复整个页面
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 禁用(而不是隐藏)浏览器滚动条
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 如何使用modalDialog来显示可以在所有浏览器中工作的弹出窗口
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 是否可以在浏览器中使用纯JavaScript保存音频流
- 如何在CryptoJS(nodejs/web浏览器)中解密AES 128
- 是否有可能在web浏览器中使用JavaScript进行简单的解密?