为什么 ZipArchive setEncryptionName 不起作用?
Why is ZipArchive setEncryptionName not working?
我有 PHP v7.3 并且我 运行 以下 PHP 代码,试图创建一个受密码保护的 ZIP -文件。
ZIP 文件已创建,但未受密码保护。有什么问题吗?
$zip = new ZipArchive();
$zipFile = $this->backupDir . '/' . $db_file_name . '_' . $this->backupFormat . '.sql.zip ';
if (file_exists($zipFile)) { unlink($zipFile); }
$zip->open($zipFile, ZipArchive::CREATE);
$password = 'top-secret';
$zip->setPassword($password);
$fileName = $this->backupDir . '/' . $db_file_name . '.sql';
$baseName = basename($fileName);
$zip->addFile($fileName, $baseName);
$zip->setEncryptionName($fileName, ZipArchive::EM_AES_256);
$zip->close();
我没有收到任何错误。只是他生成的 ZIP 文件没有保护。
签出 phpinfo
时,您会看到使用了 libzip 版本。这必须增加到版本 1.2.0 或更高版本。
我有 PHP v7.3 并且我 运行 以下 PHP 代码,试图创建一个受密码保护的 ZIP -文件。
ZIP 文件已创建,但未受密码保护。有什么问题吗?
$zip = new ZipArchive();
$zipFile = $this->backupDir . '/' . $db_file_name . '_' . $this->backupFormat . '.sql.zip ';
if (file_exists($zipFile)) { unlink($zipFile); }
$zip->open($zipFile, ZipArchive::CREATE);
$password = 'top-secret';
$zip->setPassword($password);
$fileName = $this->backupDir . '/' . $db_file_name . '.sql';
$baseName = basename($fileName);
$zip->addFile($fileName, $baseName);
$zip->setEncryptionName($fileName, ZipArchive::EM_AES_256);
$zip->close();
我没有收到任何错误。只是他生成的 ZIP 文件没有保护。
签出 phpinfo
时,您会看到使用了 libzip 版本。这必须增加到版本 1.2.0 或更高版本。