【问题标题】:Why is ZipArchive setEncryptionName not working?为什么 ZipArchive setEncryptionName 不起作用?
【发布时间】:2021-03-09 00:17:11
【问题描述】:

我有 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 文件没有受到保护。

【问题讨论】:

  • 我正在和你做同样的事情。对我来说,文件受到保护,但尝试打开 zip 时不接受密码。

标签: php ziparchive


【解决方案1】:

签出phpinfo 时,您会看到使用了libzip 版本。这必须增加到 1.2.0 或更高版本。

【讨论】:

  • 我正在使用 PH 7.3 和 Libzip 1.8,但仍然无法正常工作。在我的情况下,用于加密的密码在解锁文件时不起作用。
猜你喜欢
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 2017-03-22
  • 1970-01-01
  • 2022-01-02
  • 2013-03-07
  • 2019-08-06
相关资源
最近更新 更多