跳至主要內容
Lizely

Gzip 壓縮與解壓縮

將 UTF-8 字元的文字壓縮為包裝 RFC 1952 的 Base64-wrapped gzip 位元組,或解壓縮 gzip Base64 回到嚴格有效的 UTF-8 文字。

隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。

使用方式

  1. 1.選擇 UTF-8 文字以 gzip 壓縮 Base64,輸入文字並壓縮;複製完整的補足 Base64 結果。
  2. 2.要反向操作,請選擇 Gzip Base64 到 UTF-8,貼上包含 RFC 1952 gzip 流的標準 Base64 字串,並解壓縮。
  3. 3.驗證恢復的文字,確認目標系統是否期待此精確容器;若載荷非 UTF-8 文字,請使用二進位 gzip 工具。

關於Gzip 壓縮與解壓縮

Gzip 壓縮與解壓縮可將 UTF-8 文字轉為 gzip 位元組流,以標準形式顯示為 Base64,或接收包裝為 Base64 的 gzip 位元組並恢復為 UTF-8 文字。它使用瀏覽器壓縮流 API,本機執行,並提供複製功能以處理任一結果。此包裝方式讓任意壓縮位元組能貼入文字欄位中使用。

Gzip 是一種無損容器,由 RFC 1952 定義。流體以魔術位元組 1f 8b 開始,並帶有 DEFLATE 的壓縮方法值 8。它包含標頭欄位、壓縮區塊,以及八位元小端序尾部,包含未壓縮資料的 CRC32 與 ISIZE(輸入大小模 2^32)。瀏覽器會建立並驗證此框架。

壓縮功能會先將輸入的字串轉換為 UTF-8 位元組。非 ASCII 的字元可能佔用多個位元組,因此位元組數量與可見字元數量並不相同。CompressionStream 會接收這些位元組並產生符合標準的 gzip 流。工具隨後會將該二進位流編碼為不插入空格、換行、資料 URL 字首或檔名的補足 Base64。

解壓縮首先執行嚴格的 RFC 4648 Base64 解碼。缺少補位、空白、無效字母字元或非零補位位元都會被拒絕。接著檢查最小的 gzip 框架與魔術位元組,再將位元組傳遞至解壓縮流。瀏覽器驗證壓縮流與尾部;若輸入損壞或不完整,將返回錯誤,不會產生部分文字。

解壓縮後的位元組必須形成有效的 UTF-8。雖然 gzip 可包含任何二進位文件,但本頁專注於文字流程。若有效的 gzip 流擴充套件為圖片、文件庫、可執行檔或舊版編碼文件,嚴格解碼器會報告其並非 UTF-8,而非取代位元組或破壞輸出。請使用二進位文件解壓縮工具處理這些情況。

壓縮輸出在位元組層級上並非確定的,因為標頭欄位、DEFLATE 選項與壓縮層級可能不同,但代表相同內容。本工具並未斷言某個精確的壓縮 Base64 字串。相反,測試會驗證 RFC 魔術與方法位元組,解壓縮流,並獨立檢查尾部 CRC32 與 ISIZE 對照外部驗證值。

壓縮並非加密、保密、驗證或清理。Gzip 通常會讓文字變得較難閱讀,但任何人都可以解壓縮它。請勿將結果視為對憑證或個人資料的保護。Gzip CRC32 可偵測意外損壞,但並非對攻擊者具有加密完整性保證。

輸入與解壓縮輸出均限制於 5,000,000 位元組。此設定可防止意外大段貼入與解壓縮擴充套件導致標籤卡死。輸出絕不會靜默截斷。介面在模式或輸入變更時會取消過期的非同步結果,因此舊的壓縮任務不會覆蓋較新的值。

八種測試情境涵蓋空值與短字串、常見 CRC 設定、123456789 與 quick-brown-fox 句子。每種情況下,測試會讀取 gzip 尾部為小端序,檢查 CRC32 與精確的 UTF-8 位元組長度,驗證魔術位元組與 CM=8,並執行實際解壓縮。這不僅驗證了往返行為,也證明瞭獨立框架不變性。

當其他系統明確要求 gzip 位元組,或你需要一個緊湊的文字載荷以供傳輸時,請使用壓縮功能。請確認目的地是否需要原始 gzip、Base64 gzip、Content-Encoding 標頭,或 .gz 檔案;這些是不同的容器。解壓縮時,僅貼入 Base64 載荷,複製恢復的文字,並在定義內容的應用程式中驗證語義。

方法與來源

UTF-8 位元組流透過 CompressionStream('gzip') 並以標準形式輸出為 Base64。反向模式則嚴格解碼 Base64,驗證 gzip 魔術/CM=8,使用 DecompressionStream,限制擴充套件,並進行致命解碼 UTF-8。

常見問題

為何壓縮結果為 Base64?
Gzip 輸出為二進位。Base64 提供一種可貼入的文字表示方式,不改變底層的 gzip 位元組。
兩種 Gzip 工具會產生相同的 Base64 嗎?
不一定。標頭欄位與 DEFLATE 選項在解壓縮至相同位元組時可能不同。請驗證內容與框架,而非單一字詞。
此工具能否解壓縮 .gz 圖片或歸檔?
本頁僅回傳經嚴格驗證的 UTF-8 文字。非文字載荷請使用二進位檔案 gzip 工具。

編碼與加密 使用指南

查看全部