使用PHP打开和创建受密码保护的zip文件

Adr*_*ert 9 php zip password-protection

我找到了以下两个命令来分别创建和打开受密码保护的zip文件.然而,我想知道是否可以在纯PHP中执行此操作

echo system('zip -P password file.zip file.txt');  
echo shell_exec('unzip -P password file.zip');
Run Code Online (Sandbox Code Playgroud)

Sal*_*ali 5

PHP5.6.0以下做是不可能的。但是在新的PHP5.6.x版本中开发者添加了这个功能。所以不需要可怕的systemshell_exec(这可能会导致安全漏洞)。

所以现在你可以做这样的事情:

ZipArchive::setPassword($password)
Run Code Online (Sandbox Code Playgroud)

  • ZipArchive::setPassword($password) 仅用于读取而不是创建 zip 存档: 注意:此函数仅设置用于解压存档的密码;它不会将不受密码保护的 ZipArchive 变成受密码保护的 ZipArchive。http://php.net/manual/en/ziparchive.setpassword.php (6认同)
  • 为什么这不是公认的答案?最好的问候,你救了我的一天:) +1 (2认同)
  • 读?是的,添加文件?从我的角度来看还没有:https://bugs.php.net/bug.php?id=67590&thanks=4 (2认同)

Aur*_*osa 3

您可以使用某些库(如PclZip)创建简单的文件 zip,但无法使用密码创建 zip。