Javascript 将CryptoJS库与jQuery文件上传集成

Javascript 将CryptoJS库与jQuery文件上传集成,javascript,jquery,file-upload,blueimp,cryptojs,Javascript,Jquery,File Upload,Blueimp,Cryptojs,我想通过blueimp将库与小部件集成。我想为文件上传实现cilent端加密,问题被问到了,但没有回答 我目前正在做以下程序。但是上传的文件不是我在js中创建的加密文件。我哪里出错了?还是有更好的方法 我知道data.files[index_number]给出了存储为blob的文件。我想用相同文件的加密版本替换该文件。我也是 var reader = new window.FileReader(); var myFile = data.files[0]; //creat

我想通过blueimp将库与小部件集成。我想为文件上传实现cilent端加密,问题被问到了,但没有回答

我目前正在做以下程序。但是上传的文件不是我在js中创建的加密文件。我哪里出错了?还是有更好的方法

我知道data.files[index_number]给出了存储为blob的文件。我想用相同文件的加密版本替换该文件。我也是

    var reader = new window.FileReader();
    var myFile = data.files[0];

    //create a blob
    var inputBlob = myFile.slice(0,myFile.size);
    reader.readAsText(inputBlob);

    reader.onload(function() {
        var strToEncrypt = reader.result();

        //get key and iv
        var key = CryptoJS.enc.Base64.parse("my_key");
        var iv = CryptoJS.enc.Base64.parse("my_iv");

        //encrypt
        var encryptedObject = CryptoJS.AES.encrypt(strToEncrypt , key, { iv: iv });

        //extract and stringify ciphertext from encrypted file object
        var encryptedString = CryptoJS.enc.Base64.stringify(encryptedObject.ciphertext);

        //do this procedure to convert to blob
        var byteChars = atob(encryptedString);
        var byteNumbers = new Array(byteChars.length);
        for (var i = 0; i < byteChars.length; i++) {
             byteNumbers[i] = byteChars.charCodeAt(i);
        }
        var byteArray = new Uint8Array(byteNumbers);
    }
        var outputBlob = new Blob([byteArray], {type: "file"});

        //function to create a file from blob
        function blobToFile(theBlob, fileName){
        //A Blob() is almost a File() - it's just missing the two properties below which we will add now
                    theBlob.lastModifiedDate = new Date();
                    theBlob.name = fileName;
                    return theBlob;
        }

        //make the final file
        var outputFile = blobToFile(outputBlob, "encr_file");

        //replace original file with this file
        data.files[0] = outputFile;
var reader=newwindow.FileReader();
var myFile=data.files[0];
//创建一个blob
var inputBlob=myFile.slice(0,myFile.size);
reader.readAsText(inputBlob);
reader.onload(函数(){
var strotencrypt=reader.result();
//拿到钥匙和iv
var key=CryptoJS.enc.Base64.parse(“我的密钥”);
var iv=CryptoJS.enc.Base64.parse(“my_iv”);
//加密
var encryptedObject=CryptoJS.AES.encrypt(strotencrypt,key,{iv:iv});
//从加密文件对象提取密文并将其字符串化
var encryptedString=CryptoJS.enc.Base64.stringify(encryptedObject.ciphertext);
//执行以下步骤以转换为blob
var byteChars=atob(加密字符串);
var byteNumbers=新数组(byteChars.length);
对于(var i=0;i
请帮忙