Javascript端到端上传/下载文件加密

时间:2015-10-06 10:06:32

标签: javascript file encryption download upload

我正在尝试使用JS在上传期间加密文件,然后在下载期间解密它们 - 所有客户端,使用javascript(如Mega / tresorit)。

到目前为止,我的应用程序的基本原则是:

-upload:使用HTML5 FileReader作为基本64字符串读取文件,使用CryptoJS加密,然后发送到PhP

reader = new FileReader(); 
    reader.onload = function(event) {
        var encrypted = CryptoJS.AES.encrypt(event.target.result, "Secret Passphrase");
       //send to PhP
    }
    reader.readAsDataURL(files[i]);

-download:通过XMLHTTP请求将文件作为字符串获取,使用CryptoJS解密,我就完成了。

var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function ()
{
    if(rawFile.readyState === 4)
    {
        if(rawFile.status === 200 || rawFile.status == 0)
        {
            var decryped= CryptoJS.AES.decrypt(rawFile.responseText, "Secret Passphrase");
            //process....

        }
    }
}

上面的原则适用于小文件(几MB),但我需要能够处理更大的文件(至少100MB)。

有没有好办法呢?上传可能可以通过使用HTML5 FileReader上传加密块来解决,但是下载呢?我在考虑HTML5 FileSystem API,但它已经不再开发了。

我不是要求任何人为我编写代码,我只是想知道这样做的好/最佳方式是什么以及我应该用什么来搜索/寻找。

谢谢你。

0 个答案:

没有答案