Я создаю приложение Node.js, которое может шифровать и дешифровать файлы изображений. Однако, когда мой код запускается, я получаю различные результаты: иногда дешифрованное изображение выглядит как оригинал вверху, но нижняя половина выглядит поврежденной, иногда дешифрованное изображение полностью там, но выглядит так, как будто оно было сильно сжато, а иногда дешифрованное изображение слишком продажно, чтобы открыть. Вот изображение , которое демонстрирует это. Единственное, что объединяет эти результаты, так это то, что зашифрованные и дешифрованные изображения в два раза превышают размер исходного изображения.
const fs = require('fs');
const crypto = require('crypto');
var path = 'C:\\Users\\' + windowsUserName + '\\Desktop\\image';
var fileExtension = '.jpg';
var password = '1234';
var algorithm = 'aes-256-cbc';
var image = fs.createReadStream(path + fileExtension);
var encryptedImage = fs.createWriteStream(path + ' encrypted' + fileExtension);
var decryptedImage = fs.createWriteStream(path + ' decrypted' + fileExtension);
var encrypt = crypto.createCipher(algorithm, password);
var decrypt = crypto.createDecipher(algorithm, password);
image.pipe(encrypt).pipe(encryptedImage);
image.pipe(encrypt).pipe(decrypt).pipe(decryptedImage);
Как исправить повреждение изображения и удвоение размера файла?