首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CryptoJS解密对象

CryptoJS解密对象
EN

Stack Overflow用户
提问于 2017-11-09 20:13:17
回答 2查看 6.1K关注 0票数 2

我需要解密一些用CryptoJS加密的东西。我有用于加密的函数,加密的对象的结构和用于加密的数据,但我需要知道该对象的一些值。

该函数为:

代码语言:javascript
复制
var c = CryptoJS.enc.Utf8.parse(g.slice(0, 16));
var d = CryptoJS.AES.encrypt(JSON.stringify(collectData), c, {
    iv: c,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
}).toString()

稍后,将以下内容应用于加密的变量:

代码语言:javascript
复制
d.toString().replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '*');

我尝试过这样做,但我无法还原该对象:

代码语言:javascript
复制
var decrypted = CryptoJS.AES.decrypt(coord, key, {
iv: key,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7

} );

代码语言:javascript
复制
console.log('decrypted clean:\n' + decrypted);
console.log('decrypted JSON.stringify():\n'+ JSON.stringify(decrypted));

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-05-14 18:21:02

你的问题实际上帮助我找到了一个解决方案,加密了一个对象,解密了一个字符串,所以你可以进行替换

另一个可能提供这种类型的错误预估的地方是键,在将键解析为Utf8时,确保键恰好为16个字符,您可以添加空值添加字符串的末尾,以确保字符串足够长,方法是在解析前将'/u0000‘附加到字符串

代码语言:javascript
复制
encrypt(data) {
return CryptoJS.AES.encrypt(JSON.stringify(data), this.secret,
 {
    keySize: 128 / 8,
    iv: this.secret,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  }).toString();
}

decrypt(data) {
return JSON.parse(CryptoJS.enc.Utf8.stringify(CryptoJS.AES.decrypt(data,  this.secret, 
{
    keySize: 128 / 8,
    iv: this.secret,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  })));
}
票数 3
EN

Stack Overflow用户

发布于 2019-05-09 14:21:55

JSON object的加解密

节点JS

代码语言:javascript
复制
var CryptoJS = require('node-cryptojs-aes').CryptoJS;

var data = {
  "glossary": {
  "title": "example glossary",
  }
}

var cip = CryptoJS.AES.encrypt(JSON.stringify(data), "pass").toString();
console.log("Encrypted data = " + cip);

在浏览器端- HTML CDN - "https://cdn.jsdelivr.net/npm/crypto-js@3.1.9-1/crypto-js.js

代码语言:javascript
复制
var decrypted =     CryptoJS.AES.decrypt('U2FsdGVkX1/ps2tRPpM+5elyGhaT7zpp3YL45esS57GmSLoCkhcRdJDBGPUy    uvt0tf4CY6lW2+kugXocBQkc6A==', "pass");
    data = CryptoJS.enc.Utf8.stringify(decrypted)
    console.log("decrypted", JSON.parse(data))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47201575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档