0

我使用带有密码的 ZipArchive::EM_TRAD_PKWARE,但 zip 文件未加密。我认为 pkware 不工作。有解决方案吗?

谢谢

$zip->setEncryptionName('test.txt', ZipArchive::EM_TRAD_PKWARE, 'PASSWORD'); 
4

1 回答 1

1

我通过以下示例和规则使其工作:

让它发挥作用的两条规则

不遵循这两条规则时,我得到了不一致的结果:

  1. 确保要加密的文件包含数据
  2. 确保addFile之前调用setEncryptionName

工作示例

测试.txt

使用以下内容创建以下 test.txt 文件:

test

测试.php

将以下 PHP 代码添加到 test.php:

$zip = new ZipArchive();
$zip->open("test.zip", ZipArchive::CREATE);
$zip->addFile("test.txt");
$zip->setEncryptionName('test.txt', ZipArchive::EM_TRAD_PKWARE, 'PASSWORD'); 
$zip->close();

运行 test.php

php test.php

现在创建了一个 zip 文件,它会在解压缩时提示输入密码。

于 2021-11-23T19:10:36.120 回答