CryptoJS加密/解密示例,在客户端站点上包含二进制文件

时间:2018-06-12 14:46:18

标签: javascript encryption aes cryptojs

我想在客户端站点上使用CryptoJS进行加密/解密。 但我无法找到为什么我的代码工作不正确。加密看起来没问题但我加密一些二进制文件后无法解密。也许是因为我在我的代码中使用了错误的加密参数来加密二进制文件。 我附加了我用于加密二进制文件(mp3,avi或其他)的代码,但没有运气。有可能告诉我我在哪里弄错了吗? 我也在寻找一些例子,我可以看到CryptoJS可能用于二进制文件,但我在网上花了两天时间并没有找到相关的答案。客户端站点上的加密和服务器站点上的解密有很多示例,但没有找到客户端站点加密客户端站点解密的任何示例(纯javascript实现)... 因此,我在这里问这是我最后的尝试,以找到我的问题的解决方案。任何帮助将不胜感激! THX

我正在使用CryptoJS v3.1.2

$("#ffle").change(function(){
    var file = this.files[0];
    var reader = new FileReader();

    var key =  CryptoJS.enc.Utf8.parse("Halo");
    var iv =  CryptoJS.enc.Utf8.parse("123");

    reader.onload = function (e) {

        var encdata = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(e.target.result), key,
        {
            keySize: 256,
            iv: iv,
            mode: CryptoJS.mode.CBC,    //padding: CryptoJS.pad.Pkcs7
        });

        var finData = encodeURIComponent(encdata);
        var form_data = new FormData();                 
        form_data.append('file_enc', finData);

        var xhr = new XMLHttpRequest();    

        xhr.open('POST', 'https://crypt.xxxxxxx.net/fileenc4/save.php', true); 
        xhr.send(form_data);
        xhr.onload = function () {

        };

    }

    reader.readAsText(this.files[0]);     
});

0 个答案:

没有答案