nodejs 压缩目录设置密码并且解压dome
压缩目录并设置密码:
const fs = require('fs');
const archiver = require('archiver');
const crypto = require('crypto');
const output = fs.createWriteStream('example.zip');
const archive = archiver('zip', {
zlib: { level: 9 } // 设置压缩级别
});
output.on('close', function() {
console.log('压缩完成');
});
// 设置密码
const password = 'mypassword';
const cipher = crypto.createCipher('aes-256-cbc', password);
// 添加待压缩的目录
archive.directory('example/', false);
// 加密压缩流
archive.pipe(cipher).pipe(output);
// 执行压缩
archive.finalize();
解压目录:
const fs = require('fs');
const archiver = require('archiver');
const crypto = require('crypto');
const input = fs.createReadStream('example.zip');
const output = fs.createWriteStream('example-decrypted.zip');
// 设置密码
const password = 'mypassword';
const decipher = crypto.createDecipher('aes-256-cbc', password);
// 解密压缩流
input.pipe(decipher).pipe(output);
output.on('close', function() {
console.log('解压完成');
});
// 创建解压缩对象
const unzipper = archiver('zip');
// 监听解压缩完成事件
unzipper.on('close', function() {
console.log('解压完成');
});
// 解压缩到指定目录
unzipper.pipe(fs.createWriteStream('example/'));
unzipper.directory('example-decrypted/', false);
unzipper.finalize();
``
原文地址: https://www.cveoy.top/t/topic/fmv0 著作权归作者所有。请勿转载和采集!