我想创建一个带有密码的压缩文件夹,在服务器端使用node.js解压压缩文件夹时会要求输入密码。这里有一个没有密码的zip文件夹创建的例子,但是我怎么才能让它有密码保护呢?
下面是创建受密码保护的zip的代码。所以,在demo文件夹中,我有一个文件列表,以及我想压缩到一个文件夹中的那些文件。我已经在xyz文件夹中创建了test.zip,正在创建压缩包,但解压该压缩包时不会要求输入密码。取而代之的是,它在解压后打开单个文件时要求输入密码。我希望你能理解我的问题。
spawn = require('child_process').spawn;
zip = spawn('zip',['-P', 'password' , '-r','./xyz/test.zip', `./demo`]);
zip .on('exit', function(code) {
console.log("zip with password protected successfully");
})发布于 2021-11-01 07:17:25
简短的回答是:你不能。
Zip文件(特别是PKZip文件)不支持整个归档加密或文件名加密:只能加密归档中的单个文件-以及标准加密方案(ZipCrypto) and is considered insecure today。
更多现代版本的PKZip规范支持AES加密和文件头加密,但是使用这个版本的压缩文件不被今天使用的大多数软件支持(以我的经验),包括微软视窗(例如,Windows11仍然不支持AES加密的压缩文件)。
在您的例子中,我看到您使用的是zip命令行可执行文件,它(取决于您的*nix发行版)不支持AES加密,也不支持仅针对每个文件的头加密ZipCrypto。
https://stackoverflow.com/questions/69793610
复制相似问题