如果使用 setEncryptionName 加密文件,如何在 PHP 中提取 zip 存档

用户17469

我使用 setEncryptionName 创建了带有加密的 zip,如下所示:

if($zip->open($zip_destination_real,\ZipArchive::CREATE) === TRUE) 
{
  $zip->addFile($filePath_real,'xyz.txt');   
  $zip->setEncryptionName('xyz.txt', \ZipArchive::EM_AES_256, '12345');         
  $zip->close();

}

现在,如何解压这个 zip 文件?extractTo 函数返回 false。

$r = $zip->extractTo($dir_real); var_dump($r);

我使用 php 7.2

即使我手动提取文件夹时,它也会要求输入密码。我按设置输入 12345,但弹出错误,说提取文件时发生错误。

萨米尔·马玛达萨诺夫

您没有正确设置密码。

使用密码压缩文件:

# Creating new zip object
$zip = new ZipArchive();
if ($zip->open('file.zip', ZipArchive::CREATE) === TRUE) {

    # Setting password here
    $zip->setPassword('12345');

    # Adding some files to zip
    $zip->addFile('some-file.txt');
    $zip->setEncryptionName('some-file.txt', ZipArchive::EM_AES_256);

    # Closing instance of zip object
    $zip->close();

    exit("Done! Your zip is ready!")
} else {
    exit("Whoops:( Failed to create zip.");
}

并像这样解压:

# Creating new ZipArchive instance
$zip = new ZipArchive();

# Open file to read
if ($zip->open('file.zip') === true) {

    # Enter your password
    $zip->setPassword('12345');

    # Extract files to some destination
    # dirname(__FILE__) sets destination to directory of current file
    $zip->extractTo(dirname(__FILE__));

    # Closing instance of zip object
    $zip->close();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用密码从ZIP存档中提取文件

从zip存档中提取gzip文件

如何从MATLAB中的zip存档中提取单个文件?

如何从S3中的zip存档中提取文件

从命令行使用7-Zip从存档中提取特定文件

从Zip存档中提取图像

从zip存档中提取文件,然后重命名

从 zip 存档中提取文件是否比从同一存档中复制文件更快?

使用7-zip从每个存档中批量提取文件

如果存档中没有子文件夹,如何在RAR / ZIP提取中创建子文件夹?

如何仅从ZIP存档中提取mp3文件

如何使用PHP发送加密的Zip存档作为邮件附件?

仅使用其URL从在线tar存档中提取文件

从zip存档中提取文件(不包括某些文件名)

从存档中提取一个文件:7-zip是否需要解压缩整个存档?

7-Zip命令行从存档中提取文件夹

从Python3中的zip存档中提取特定文件夹的内容

无法从Mac中的zip存档中提取可执行文件

以编程方式从7zip存档中提取单个特定文件-Java-Linux

无法使用zip存档在php中创建有效的zip文件?

如何从tar存档中提取特定文件?

如何从cpio存档中提取单个文件?

如何使用SharpZipLib从zip文件中提取文件夹?

如何使用PowerShell创建zip存档?

如何使用文件创建 zip 存档并将其附加到 zip 存档?

当该文件不在中央目录中但具有自己的LFH时,是否有工具可以从ZIP存档中提取文件?

如何仅使用内存从从 Internet 下载的存档中提取特定文件

如何使用Inno Setup从FreeArc存档中提取受密码保护的文件?

使用PHP将ZIP文件ftp_get()之前,先在FTP服务器上将ZIP文件存档