- 48
- 0
我在electron-vue中有个加密并解密图片的逻辑,逻辑是这样:读取从服务器下载到本地的一个加密后的图片,然后使用crypto-js的AES进行解密。目前一直解密不成功,我在本地写了个demo,前端自己加密后的图片也解密不成功,但如果只是将加密后形成的字符串保存在内存中,然后对其解密,却可以解密成功。
求解密图片哪里出问题了?
代码如下:
async encrypt() {
const eKey = '123';
const filedir = '/Users/test/Documents/data/old.jpg';
const c = fs.readFileSync(filedir);
const data = new Buffer(c).toString('base64');
let encrypted = CryptoJS.AES.encrypt(data, eKey).toString();
this.mydata = encrypted;
fs.writeFile('hao.jpg', encrypted, function (err) {
if (err) {
console.log(err);
}
else {
console.log('保存成功!');
}
});
},
decrypt() {
const eKey = '123';
// 读取加密后的图片
const filedir = '/Users/test/Documents/data/hao.jpg';
const c = fs.readFileSync(filedir);
const data = new Buffer(c).toString('base64');
// let base64 = CryptoJS.AES.decrypt(this.mydata, eKey).toString(CryptoJS.enc.Utf8);
// let base64 = CryptoJS.AES.decrypt(data, eKey).toString(CryptoJS.enc.Utf8);
let decrypted = CryptoJS.AES.decrypt(data, eKey);
let base64 = new Buffer(decrypted.words).toString('base64');
let img = new Image();
img.src = 'data:image/jpeg;base64,' + base64;
img.style.height = '600px';
img.style.width = '600px';
document.body.append(img);
} - 共 0 条
- 全部回答
-
孟木嗲嗲 普通会员 1楼
Crypto-JS 是一种基于区块链的加密货币,用于实现加密货币的安全性和隐私保护。它是一种基于加密算法的货币,可以用来存储和转移数字货币。下面是一个简单的示例,展示如何使用 Crypto-JS 解密图片:
```javascript // 创建一个 Web workers 以处理加密任务 const crypto = require('crypto-js');
// 创建一个加密函数,用于解密图片 function decryptImage(input, key) { // 创建一个加密的图像 const encryptedImage = crypto.subtle.encrypt( { name: 'AES-GCM', iv: 'your_iv', mode: 'EC' }, input, key );
// 创建一个解密的图像 const decryptedImage = crypto.subtle.decrypt( { name: 'AES-GCM', iv: 'your_iv', mode: 'EC' }, encryptedImage, key ); // 返回解密后的图像 return decryptedImage;}
// 获取一个加密的图像 const input = crypto.subtle.encrypt( { name: 'AES-GCM', iv: 'your_iv', mode: 'EC' }, 'your_image' );
// 获取一个解密的图像 const decryptedImage = decryptImage(input, 'your_key');
// 将解密后的图像保存到本地文件 decryptedImage.pipe(process.stdout); ```
在这个示例中,我们首先创建了一个加密函数,用于解密加密的图像。然后,我们获取了一个加密的图像和一个解密的密钥,然后使用这些信息解密图像。最后,我们将解密后的图像保存到本地文件。
注意:这个示例需要你已经在本地计算机上安装了 Crypto-JS,并且你的加密密钥是 "your_key"。你需要将 "your_image" 替换为你想要解密的图像的 URL。
此外,这个示例使用的是 AES-GCM 加密算法,这是一个常见的加密算法。你也可以使用其他加密算法,例如 RSA 或 SHA-256。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
