NodeJS File Encryptor AES128

JS
S
JavaScript

Basic file encryptor using Advanced Encryption Standard 128.

1const fs = require('fs'); 
2const zlib = require('zlib');
3const crypto = require('crypto');
4
5const reportProgress = new Transform({
6  transform(chunk, encoding, callback) {
7    process.stdout.write('.');
8    callback(null, chunk);
9  }
10});
11
12function compressFile(){
13    const file = process.argv[2];
14    fs.createReadStream(file)
15    .pipe(zlib.createGzip())
16    .pipe(crypto.createCipher('aes128', 'secret'))
17    .pipe(reportProgress)
18    .pipe(fs.createWriteStream(file + '.gz'))
19    .on('finish', () => console.log('Compressed.'));
20}
21
22function uncompressFile(){
23    const file = process.argv[2] + '.gz';
24    fs.createReadStream(file)
25    .pipe(crypto.createDecipher('aes128', 'secret'))
26    .pipe(zlib.createGunzip())
27    .pipe(reportProgress)
28    .pipe(fs.createWriteStream(file.slice(0, -3)))
29    .on('finish', () => console.log('Uncompressed.'));
30}
31
32// usage node script.js xpto.json

Created on 7/24/2017