Я расшифровываю большой файл ( 450 МБ ).
Я читаю файл с fs.createReadStream и расшифровываю с crypto-js .
Файл был зашифрован в UTF8.
Содержимое файла в формате JSON.
МОЯ ФУНКЦИЯ:
function decryptFile(srcDir, fileName, destDir) {
let encryptedPath = path.join(srcDir, fileName);
let decryptedPath = path.join(destDir, fileName).replace('.xam', '.json');
console.log('DECRYPTING XAM FILE ' + encryptedPath + ' TO ' + decryptedPath);
const input = fs.createReadStream(encryptedPath);
input.once('readable', () => {
const decipher = crypto.createDecipher('xxx-xxx-xxx', 'XxxX');
const output = fs.createWriteStream(decryptedPath);
input.pipe(decipher).pipe(output).on('finish', () => {
console.log('FILE DECRYPTED');
}).on('error', error => {
console.log(error);
});
});
}
ОБНОВЛЕНИЕ ОШИБКА:
Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length
at Decipher._flush (crypto.js:158:28)
at Decipher.prefinish (_stream_transform.js:137:10)
at emitNone (events.js:106:13)
at Decipher.emit (events.js:208:7)
at prefinish (_stream_writable.js:602:14)
at finishMaybe (_stream_writable.js:610:5)
at afterWrite (_stream_writable.js:464:3)
at onwrite (_stream_writable.js:454:7)
at Decipher.afterTransform (_stream_transform.js:90:3)
at Decipher._transform (crypto.js:153:3)
ОБНОВЛЕНИЕ Заголовок