Javascript 将CryptoJS库与jQuery文件上传集成
我想通过blueimp将库与小部件集成。我想为文件上传实现cilent端加密,问题被问到了,但没有回答 我目前正在做以下程序。但是上传的文件不是我在js中创建的加密文件。我哪里出错了?还是有更好的方法 我知道data.files[index_number]给出了存储为blob的文件。我想用相同文件的加密版本替换该文件。我也是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
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
请帮忙