AES 文件上传加密/解密以及使用

3

我有一个群聊,用户可以发布文本和图片。

我使用客户端扩散技术,使用每个用户的公钥为每条消息进行多次加密。

理论上这是可行的,直到你尝试在发送给服务器之前为50个人RSA加密一个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解密时,如何提取图像以供在图像标签中使用?

我没有发布我的尝试,因为它们是可笑的,而且我没有看到这方面得到很好地解释。

1个回答

2
你不会使用RSA来加密大文件,这个过程速度非常慢,你可以使用RSA来加密小的数据。这里通常采用的方法是生成一组新的对称加密密钥,使用该密钥加密图像,然后将该密钥分别加密给需要知道如何解密图像的每个用户。"最初的回答"

请问您能否演示一下如何完成,包括获取图像吗?您是先将图像转换为base64格式吗? - user300979
1
你可以将图像转换为任何你想要的格式,这并不重要,原则是你不要用RSA加密它,而是只加密一个小的对称密钥。这些密钥通常只有256-512个长,非常小。图像可能有多兆字节,因此在其上使用RSA会慢上数百万倍。 - tadman
1
我明白你的意思。 - user300979

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接