首页 > 解决方案 > 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 解密时,如何提取图像以用于图像标签?

我没有发布我尝试过的东西,因为它们很可笑,而且我没有看到任何地方对此进行了彻底的解释。

标签: javascriptfile-uploadaesrsa

解决方案


你不使用 RSA 加密大东西,它真的很慢,你使用 RSA 加密小东西。这里的典型方法是生成一个新的对称加密密钥,用它加密图像,然后为每个需要知道如何解密图像的用户单独加密该密钥。


推荐阅读