javascript - AES文件上传加密/解密及使用
问题描述
我有一个群聊,用户可以在其中发布文本和图像。
我正在使用客户端扇出为每个用户使用他们的公钥多次加密每条消息
理论上这很好,直到您尝试 RSA 加密 50 个人的 base64 图像,然后再发送到服务器。大约需要11天。
因此,在尝试了 JSZip 之类的东西然后加密或 AES 然后 RSA 之后,我正在寻找正确的方法来做到这一点。
所以假设我有
<input id="foo" type="file" />
还有我的更改功能
$(document).on("change", "#foo", function() {
// AJAX PUBLIC KEY RETRIEVAL
$.ajax({
url : ajax_object.ajax_url,
type : 'post',
data : {
action: 'get_room_member_keys',
},
beforeSend: function() {
},
success: function(html) {
var pubKeys = $.parseJSON(html);
$.each( pubKeys, function( key, value ) {
// Do encryption with Cryptico
});
},
});
});
然后当我获取存储的消息和 RSA 解密时,如何提取图像以用于图像标签?
我没有发布我尝试过的东西,因为它们很可笑,而且我没有看到任何地方对此进行了彻底的解释。
解决方案
你不使用 RSA 加密大东西,它真的很慢,你使用 RSA 加密小东西。这里的典型方法是生成一个新的对称加密密钥,用它加密图像,然后为每个需要知道如何解密图像的用户单独加密该密钥。
推荐阅读
- javascript - 如何通过搜索纯文本在 HTML 中找到具有标记文本的节点?
- r - 将重叠的多边形合并为单个多边形
- python - 我想在python中清除之前的代码
- node.js - 我想用类 image-reg 刮掉所有元素,但是,使用 phantomjs 时它不起作用
- database - 单元测试 SQL 脚本
- sql-server - SSRS 报告为最终用户输出“空白”而不是 0
- node.js - 如何针对每个请求将 socket.io 中的请求 ID 共享给另一个文件
- python - 将多个处理程序传递给记录器
- java - 如何在appium Android中水平滑动
- java - Base64 编码的网址中缺少 MimeType