Я хочу расшифровать (используя cryptojs) зашифрованный файл mp4 (используя nodejs crypto rc4). Я не могу расшифровать файл, так как я новичок в nodejs. Любая помощь приветствуется.
Ниже приведен код, используемый вnodejs для шифрования (файл-шифратор пакета npm):
var crypto = require('crypto'),
fs = require('fs');
var Encryptor = {};
Encryptor.encryptFile = function(inputPath, outputPath, key, options, callback) {
if(typeof options === 'function') {
callback = options;
options = {};
}
options = Encryptor.combineOptions(options);
var keyBuf = new Buffer(key);
var inputStream = fs.createReadStream(inputPath);
var outputStream = fs.createWriteStream(outputPath);
var cipher = crypto.createCipher(options.algorithm, keyBuf);
inputStream.on('data', function(data) {
var buf = new Buffer(cipher.update(data), 'binary');
outputStream.write(buf);
});
inputStream.on('end', function() {
try {
var buf = new Buffer(cipher.final('binary'), 'binary');
outputStream.write(buf);
outputStream.end();
outputStream.on('close', function() {
return callback();
});
} catch(e) {
fs.unlink(outputPath);
return callback(e);
}
});
};
a
и ниже моего JavaScript-кода я пытаюсь использовать cryptojs
window.resolveLocalFileSystemURL(inputPath, function (file) {
file.file(function(ffile) {
var reader = new FileReader();
var imgBlob = new Blob([ffile], { type: 'video/mp4' });
reader.onload = function(e) {
var text= Encryptor.Utf8ArrayToStr(e.target.result);
var outputString=CryptoJS.RC4.decrypt(text,key,{padding: CryptoJS.pad.NoPadding} );
var buf = new Buffer([outputString],'binary');
var imgBlob = new Blob([outputString], { type: 'video/mp4' });
fileEntry.createWriter(function(fileWriter) {
fileWriter.write(imgBlob);
});
//});
};
reader.onloadend = function(e) {
var text= Encryptor.Utf8ArrayToStr(e.target.result);//,function(text){
var outputString=CryptoJS.RC4.decrypt(text,key ,{padding: CryptoJS.pad.NoPadding});
var buf = new Buffer([outputString],'binary');
var imgBlob = new Blob([outputString], { type: 'video/mp4' });
fileEntry.createWriter(function(fileWriter) {
fileWriter.write(imgBlob);
});
//});
};
reader.readAsArrayBuffer(ffile);
});
});
Кто-нибудь знает, как это сделать?Я застрял с этим с давних времен.