piapia123
ja

Gzip の圧縮と解凍

エンコード

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

テキストを gzip で圧縮し、あるいは gzip をテキストに戻します。まずはっきりさせておきます:gzip は暗号化ではありません。鍵がなく誰でも解凍でき、出力は「そのままでは読めない」だけです —— 多くのツールサイトが「暗号化」に分類していますが、それは歴史的な誤称です。本来の用途はデータを小さくすることで、JSON はたいてい3割程度まで縮み、ログや API のレスポンス、バックアップがこれを支えています。ここではブラウザ標準の実装を使うため、結果は `gzip` コマンドや zlib、各言語の標準ライブラリと1バイトまで一致し、そのまま相互にやり取りできます。出力には元のサイズ・圧縮後のサイズ・圧縮率が並びます —— なお、圧縮して逆に大きくなるのは正常です(短いテキストに gzip のヘッダ一式が付くためです)。その旨も画面に明示します。

機能

  • 双方向:テキスト ⇄ gzip
  • 出力は Base64 または16進数。入力時はどちらも受け付けます(16進数は空白・コロン・改行を許容)
  • gzip コマンド・zlib・各言語の標準ライブラリと1バイトまで一致し、そのまま交換できます
  • 元のサイズ・圧縮後のサイズ・圧縮率を同時に表示します
  • 逆に大きくなった場合は理由を明示し、ツールの不具合と誤解させません
  • 有効な gzip でない場合は、切断・改行・zlib / deflate の可能性を指摘します

使い方

  1. 方向を選びます:圧縮または解凍
  2. データ形式を選びます:Base64 または16進数
  3. 内容を貼り付け、Ctrl/⌘ + Enter か「実行」を押します
  4. 結果をコピーします —— 行ごとに個別のコピーボタンがあります

よくある質問

gzip は暗号化に使えますか?
使えません。gzip は圧縮であって暗号化ではありません:鍵がなく誰でも解凍でき、データが「そのままでは読めない」だけです。機密の内容を圧縮してから送るのは、平文で送るのと変わりません —— 圧縮後のバイト列に情報はすべて残っています。機密性が必要なら AES か、正規の暗号アルゴリズムを使ってください。
圧縮したら逆に大きくなったのはなぜですか?
gzip には固定のヘッダとフッタのオーバーヘッド(約 18 バイト)があり、内容が短い場合やすでに圧縮済みの場合(zip・画像・動画・PDF 内のストリーム)、DEFLATE は符号化する価値のある繰り返しを見つけられず、逆に「そのまま格納した」ことを記録する分だけ増えるからです。これはすべての圧縮アルゴリズムに共通する性質で、不具合ではありません。基準は単純です:圧縮は冗長でまだ圧縮されていないデータにしか効きません。
解凍できず「有効な gzip ではない」と出ます
まずコピーが途中で切れていないか確認してください —— 圧縮結果にはバイナリが含まれるため、チャットやフォームに貼ると切れたり改行が混ざったりします。次に形式の確認です:`zlib`(0x78 で始まる)、`raw deflate`(ヘッダもフッタもない)、`gzip`(0x1f 0x8b で始まる)は互換性のない3つの形式で、しばしば一括りに「圧縮」と呼ばれますが、gzip で zlib のデータを解こうとすれば必ず失敗します。本ツールは gzip のみを扱います。
出力は gzip コマンドと同じ形式ですか?
完全に同じです。`echo -n "内容" | gzip -c | base64` の結果と本ツールの Base64 出力は1バイトまで一致します —— どちらも標準の DEFLATE と gzip のラッパーを使っており、gzip ヘッダのタイムスタンプ欄には 0 が書き込まれるためです(だから同じ入力からは必ず同じ出力になり、比較もキャッシュも安全にできます)。

関連ツール