當前位置: 首頁> 最新文章列表> 使用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()方法提取文件,可實現從壓縮到解壓的完整加密處理流程,是開發中處理壓縮包安全性的實用工具。