ZIP 壓縮檔 (.zip)
PKWARE 標準ZIP 是一種支援無損資料壓縮的封存檔案格式,允許將多個檔案與目錄封裝成單一可傳輸的容器。
將 ZIP 轉換為 TAR
免費的瀏覽器端 ZIP 轉 TAR 轉換器。在您的裝置上即時轉換檔案。
線上壓縮 ZIP
具隱私保障 - 檔案絕不會離開您的裝置
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 ZIP 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 ZIP 檔案:
十六進位簽章(偏移量 0):
50 4B 03 04ASCII 表示法: PK..
標準化: PKWARE APPNOTE / ISO/IEC 21320-1
技術規格
| 容器架構 | 結合多個檔案與各自壓縮標頭的封存容器 |
| 壓縮 | Deflate(方法 8)、Store(方法 0)、BZIP2、LZMA、Zstandard |
| 位元組序 | 所有簽章標頭、CRC32 檢查碼與大小皆採用小端序(Little-Endian) |
| 色彩空間 | 不適用(任意檔案的二進位容器) |
| 色版與結構 | 階層式目錄結構、中繼資料串流與檔案檢查碼 |
| 最大尺寸 | 標準 ZIP:4 GB / 65,535 個檔案;ZIP64:16 EB / 約 1,800 京(18 quintillion)個檔案 |
| 透明度 | 不適用 |
| 串流與漸進式 | 位於檔案結尾的中央目錄可在不解壓縮的情況下即時列出檔案清單 |
技術比較矩陣:ZIP 對比競爭格式
| 技術屬性 | ZIP (目前) | 7-Zip (7z) | TAR.GZ | RAR |
|---|---|---|---|---|
| 作業系統相容性 | 內建 ZIP 支援因作業系統與版本而異;許多系統包含相關工具 | 需要 7-Zip 或第三方應用程式 | Linux/macOS 原生支援;Windows 中需要工具 | 需要 WinRAR 或 unrar 程式庫 |
| 壓縮效率 | 中等(Deflate 演算法) | 非常高(LZMA/LZMA2 演算法) | 中等(在 tar 上使用 Deflate) | 高(RAR 專有壓縮) |
| 固實壓縮(Solid Archiving) | 否(每個檔案各自獨立壓縮) | 是(固實區塊可提高重複文字的壓縮率) | 是(壓縮整個 tarball) | 是(可選擇固實模式) |
| 選擇性解壓縮 | 快速即時解壓縮任何單一檔案 | 需要解壓縮前方的固實區塊 | 必須解壓縮串流直到目標檔案 | 若非固實則速度快 |
常見損壞模式與十六進位修復指南
壓縮公用程式回報「End-of-central-directory signature not found」或無效的壓縮檔。
根本原因: 下載遭到截斷,遺失包含中央目錄(Central Directory)記錄的最後幾個位元組。
修復: 使用「zip -FF damaged.zip --out fixed.zip」從頭掃描本機檔案標頭,並重建新的中央目錄。
安全性分析與解析器攻擊向量
ZIP 安全性的核心風險包括 Zip Slip 路徑遍歷漏洞與壓縮炸彈。
已知攻擊向量
- Zip Slip:惡意檔名包含「../../」路徑遍歷字串,可能讓檔案脫離目標解壓縮目錄。
- 壓縮炸彈:會展開成數 petabyte 零資料的極小壓縮檔(例如 42.zip 僅 42 KB 卻能展開成 4.5 PB),透過耗盡磁碟與記憶體來讓伺服器當機。
- 舊版 ZipCrypto 加密漏洞,允許在幾分鐘內僅透過密文還原金鑰。
防禦最佳實務: 務必淨化解壓縮檔案路徑,確保檔案留在目標資料夾內。解壓縮不受信任的上傳檔案時,請設定嚴格的位元組數與檔案數量上限。請使用 WinZip AES-256 加密。
歷史起源與里程碑
主要優勢與優點
- 許多作業系統與檔案管理員皆支援 ZIP,不過內建支援會因版本與設定而異。
- 位於壓縮檔結尾的中央目錄允許在不解壓縮的情況下即時列出檔案。
- 可以選擇性地解壓縮個別檔案,而無需解壓縮整個壓縮檔。
技術限制與缺點
- 無法跨平台可靠地儲存 UNIX 檔案權限或符號連結。
- 非固實封存意味著對於大量相似檔案的集合,其壓縮率低於 7z 或 tar.xz。
- 標準的傳統 ZipCrypto 加密在密碼學上已被破解(需使用 AES-256)。
有趣的技術冷知識
- ZIP 檔案標頭中的「PK」代表 PKZIP 的發明者菲爾・卡茨(Phil Katz)。
- 數個常見格式皆使用 ZIP 容器,包含 Android APK、Java JAR、Office DOCX 與 EPUB 套件。
- 由於 ZIP 允許在本機檔案標頭之前或中央目錄之後附加資料,因此常被用作多格式檔案的容器,讓檔案同時具備圖片、JAR 或可執行檔的功能。
常見技術問題
ZIP 與 7Z 有什麼差別?
ZIP 內建於許多作業系統中,而 7z 的支援度則不盡相同,可能需要額外的公用程式。相對壓縮率取決於資料與設定。
為什麼檢視 ZIP 檔案內容的速度很快?
ZIP 會在檔案的最末端儲存「中央目錄(Central Directory)」。軟體只需要讀取最後幾 KB,就能立即顯示完整的目錄樹與檔名,完全不需要解壓縮任何檔案。
加密的 ZIP 檔案很容易被破解嗎?
舊版 ZIP 加密(ZipCrypto)使用脆弱的 96 位元金鑰串流密碼,可以使用像 bkcrack 這類明文攻擊工具在幾分鐘內破解。AES-256 在正確實作並搭配強密碼使用時,可以保護壓縮檔內容,但單靠演算法並不能保證壓縮檔絕對安全。
相關的 ZIP 轉換對
將 ZIP 壓縮檔轉換為 TAR 壓縮檔,能將壓縮的檔案容器轉化為適合 Unix 環境的未壓縮磁帶封存格式。
將 TAR 壓縮檔轉換為 ZIP 壓縮檔,可將未壓縮的 Unix 容器轉變為廣泛支援的壓縮檔格式。
將 ZIP 轉換為 7z 會以不同的壓縮選項重新打包壓縮檔;產生的檔案大小可能會根據檔案與設定而變大或變小。
將 7z 轉換為 ZIP 可以讓壓縮檔更容易在支援 ZIP 的軟體中開啟;壓縮率會因檔案類型和設定而異。
直接在您的瀏覽器中將單卷 RAR4/RAR5 壓縮檔(包含固實壓縮檔)解壓縮為標準的 ZIP 檔案,完全不需要上傳到伺服器。