openssl - 使用 window.crypto.subtle.decrypt 在浏览器中解密 AES 加密图像
问题描述
业务用例:
在我的应用程序中,我允许用户上传图片。现在在将其存储到文件系统之前,我希望对图像进行 aes 加密。为了在浏览器中显示图像,我想在浏览器中动态解密它们。所以基本上它们将在静止时被加密,并在播放时被解密。
我已经实施了什么:
我使用开放 ssl 和 AES 265 CBC 算法加密了图像。下面是我使用的命令
openssl enc -in image-original.jpg -out image-enc.jpg -e -aes256 -k 26ca44bbeb4b6608437737970cbfe0db
在前端,我向服务器发送 HTTP 调用以将加密图像读取为 blob,然后我尝试使用 window.crypto.subtle.decrypt 函数解密该 blob。下面是代码
window.crypto.subtle.decrypt( { name: "AES-CBC", length: 256 }, "26ca44bbeb4b6608437737970cbfe0db", "blob that we fetched from server" ).then((result) => { debugger; });
但是我在浏览器控制台中遇到了以下列出的错误
"TypeError: Failed to execute 'decrypt' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'."
问题:
我有2个问题请教各位,
- 帮我解决这个错误,因为我在互联网上找不到太多帮助
- 如果您过去做过此类工作,请建议我更好的方法或分享您的经验。
解决方案
推荐阅读
- reactjs - 限制后退按钮反应路由器
- php - 如何忽略 PHPMD 中特定目录的特定规则
- functional-programming - 此 SDL2 方案程序中“未绑定变量”错误的原因是什么?
- c++ - Usaco 第 1.6 节 Prime Palindromes
- mongodb - 没有连接到 Mongo shell
- javascript - 导航栏下拉菜单转换仅以一种方式工作
- swift - 无法在 IOS 14 中使用 GKMatch.sendData(toAllPlayers:, with: ) 发送数据
- javascript - 无论调整大小如何,如何使移动元素保持一定的高度和宽度?
- python - 在构建张量流图时使用张量作为数组的索引
- mysql - 如何在mysql数据库中复制模式