Я хотел бы знать, как зашифровать и расшифровать видеофайл с помощью JavaScript.Я пытался сделать это с библиотекой Crypto-js, но не могу воспроизвести ее после расшифровки.В следующем коде я пытаюсь взять входящее видео для его шифрования и после расшифровки воспроизвести его из HTML и загрузить файл:
input.on('change', function (e) {
let file = e.target.files[0];
let reader = new FileReader();
reader.onload = function () {
let fileLeida = reader.result;
let videoEncriptado = CryptoJS.AES.encrypt(fileLeida, getCookie('clave')).toString();
let videoDesencriptado = CryptoJS.AES.decrypt(videoEncriptado, getCookie('clave')).toString(CryptoJS.enc.Utf8);
var videoNode = document.getElementsByTagName('video')[0];
let blob = new Blob([videoDesencriptado], {type: "video/mp4"});
let url = URL.createObjectURL(blob);
let element = document.createElement('a');
videoNode.setAttribute('href', url);
videoNode.play();
element.setAttribute('href', url);
element.setAttribute('download', 'Blurred Bokeh Video 2.mp4');
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
};
reader.readAsText(file);
});
Заранее спасибо.
Код обновлен, но все еще не работает:
let file = e.target.files[0];
let reader = new FileReader();
reader.onload = function () {
var fileLeida = CryptoJS.lib.WordArray.create(reader.result);
console.log(fileLeida);
let videoEncriptado = CryptoJS.AES.encrypt(fileLeida, getCookie('clave'));
let videoDesencriptado = CryptoJS.AES.decrypt(videoEncriptado, getCookie('clave'));
console.log(videoDesencriptado);
var videoNode = document.getElementsByTagName('video')[0];
let blob = new Blob([videoDesencriptado], {type: "video/mp4"});
let url = URL.createObjectURL(blob);
let element = document.createElement('a');
videoNode.setAttribute('href', url);
videoNode.play();
element.setAttribute('href', url);
element.setAttribute('download', 'Blurred Bokeh Video 2.mp4');
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
};
reader.readAsArrayBuffer(file);