当前位置: 首页> 最新文章列表> 使用PHP ZipArchive实现ZIP压缩包加密与解密操作教程

使用PHP ZipArchive实现ZIP压缩包加密与解密操作教程

gitbox 2025-07-17

介绍

ZipArchive 是 PHP 提供的一个用于处理 ZIP 格式压缩包的扩展库,不仅支持创建、读取、更新压缩包的基本操作,还可以通过设置密码实现对压缩包的加密和解密处理,保障数据的私密性与安全性。

创建加密压缩包

要创建一个加密的 ZIP 文件,主要分为以下几个步骤。

打开ZIP文件并设置密码

首先实例化 ZipArchive 类,并通过 open() 方法以创建模式打开 ZIP 文件,随后调用 setPassword() 设置压缩包密码。

$zip = new ZipArchive();
$zip->open('encrypted.zip', ZipArchive::CREATE);
$zip->setPassword('password');

上述代码创建了一个名为 encrypted.zip 的压缩包,并设定访问密码为 password

添加文件到压缩包

在 ZIP 文件成功打开并设置密码后,可以使用 addFile() 方法将目标文件加入压缩包。

$file = 'example.txt';
$zip->addFile($file);

此处我们将本地的 example.txt 文件添加到了加密压缩包中。

关闭压缩包

完成文件添加后,务必使用 close() 方法关闭压缩包,以完成写入操作。

$zip->close();

至此,一个包含加密文件的压缩包就已经生成完毕。

解密压缩包

当需要提取加密 ZIP 包中的内容时,也可以通过 ZipArchive 进行读取与解密。

打开并设置解密密码

使用 ZipArchive::READ 模式打开压缩包,并通过 setPassword() 方法设置正确的解密密码。

$zip = new ZipArchive();
$zip->open('encrypted.zip', ZipArchive::READ);
$zip->setPassword('password');

确保设置的密码与创建压缩包时一致,否则解密将失败。

提取文件内容

解密成功后,使用 extractTo() 方法将文件提取到指定目录。

$destination = 'extracted/';
$zip->extractTo($destination);

文件将会被完整地提取到 extracted/ 目录下。

关闭压缩包

文件提取完成后,同样需要调用 close() 方法来关闭压缩包。

$zip->close();

这样就完成了对加密压缩包的解密与提取操作。

总结

借助 PHP 的 ZipArchive 扩展,我们可以轻松实现 ZIP 压缩包的加密与解密操作。在实际项目中,这一能力可用于敏感文件的存储与传输,加密处理能够有效避免数据被非法访问。通过 setPassword() 方法设置密码,以及 extractTo() 方法提取文件,可实现从压缩到解压的完整加密处理流程,是开发中处理压缩包安全性的实用工具。