NodeJS开发设计中,实际操作zip文件有两类方式:应用三方模块,如node-zip,或调用外界程序流程。
调用外界程序流程是应用execfile等方式运行程序段,但这些方法,在不一样操作系统间实用性很差,因此并不强烈推荐。
而应用三方模块得话,通常模块都不兼容实际操作含有密码的zip文件。
通过很久搜索,总算从海外资料站查到一个适用密码的zip模块,下列便共享给大伙儿:
这一模块称为:unzipper。
立即用源码演试其操作方法,留意图中
源码:
const unzipper = require('unzipper');
(async () =>{
try{
const directory = await unzipper.Open.file('demo.zip');
const extracted = await directory.files[0].buffer('123456');
console.log(extracted.toString());
}catch(e){
console.log(e);
}
})();
用以检测的是demo.TXT文档,內容载入“hello”,随后将压缩照片成:demo.zip,缩小前设定密码为:123456。
随后在Node环境中运行上边的源码:
与希望一致,打开了带密码的压缩包,并表明出了文档中的內容。
而假如密码有误会怎么呢?
在源码中改动密码字符串数组为不正确的密码,并再度实行,会表明:“BAD_PASSWORD”:
检测结束,确认此模块可解决带密码的ZIP文档。
填补专业知识:
NodeJS源码,好似JavaScript一样,也是公平合理的。假如应用NodeJS做的新项目要交付给顾客,或NodeJS开发设计的商品要公布,立即交货或公布相当于开源系统了商品。那要怎样维护源码呢?计划方案是对JS源码开展搞混数据加密。
例如文中的NodeJS编码,可应用JShaman开展搞混数据加密:
加密后的编码尽管或是密文编码,但变成了不能读、不可了解、不能反向、不能改动的保密编码:
并且根本不影响到正常的应用: