元の圧縮されていないファイルがあれば、gzip ファイルを正確に再作成できますか?

元の圧縮されていないファイルがあれば、gzip ファイルを正確に再作成できますか?

gzip ファイルの一連のチェックサムの追跡可能性を失うことなく、gzipを使用してより効率的に保存したい一連のファイルがあります。xz

これは、xz ファイルから gzip ファイルを再作成できるということだと考えていますが、他の提案も歓迎します。

詳しく説明すると... という名前の gzip ファイルがありtarget.txt.gz、それを に解凍してtarget.txt圧縮ファイルを破棄した場合、元の圧縮ファイル とまったく同じものを再作成する必要がありますtarget.txt.gz。 正確とは、ファイルの暗号チェックサムが元のファイルとまったく同じであることを示す必要があることを意味します。

当初、これは不可能だと思いました。なぜなら、gzip ファイルには、解凍時に保持されない可能性のある元のファイル名やタイムスタンプなどのメタデータや、解凍時にほぼ確実に保持されないコメント、ソース オペレーティング システム、圧縮フラグなどのメタデータが含まれているからです。

しかし、その後、質問を修正することを考えました。gzip ファイルから抽出できる最小限のヘッダー情報があり、それを非圧縮データと組み合わせて元の gzip ファイルを再作成できるかどうかです。

そして、次のようなツールの存在により、答えはまだ「いいえ」かもしれないと考えました。ゾプフリそして7-ジップは、標準の gzip プログラムよりも優れた (したがって異なる) gzip 互換ストリームを作成できます。私の知る限り、gzip ファイル形式では、どの圧縮プログラムが作成したかは記録されません。

そこで私の質問は次のようになります。結局、最初の段落で述べた目標を達成できるかもしれない、私が考えていない他の選択肢はあるのでしょうか?

答え1

これは役に立つかもしれません:https://github.com/google/grittibanzli

Grittibanzli は、deflate ストリームを小さなファイルに圧縮し、元の deflate ストリームに再度デコードできるツールです。つまり、deflate ストリーム内のデータだけでなく、LZ77 シンボルやハフマン ツリーなどの deflate 関連情報も圧縮し、gzip、png などのファイルを正確に再現します。

関連情報