bzip2決定論的(再現可能)を使用してファイルを圧縮しますか?

bzip2決定論的(再現可能)を使用してファイルを圧縮しますか?

bzip2100%再現が必要なファイルに圧縮を使用するときに潜在的な問題があるかどうかを確認しようとしています。具体的には、メタデータ(名前/インデックスノード、lastmod日付など)または他のものが同じファイルの内容になりますか?別のチェックサムの生成生成されたアーカイブから.bz2

例えば、gzipはデフォルトでは決定的ではありません使用しない限り-n

これまでのおおよそのテストによると、bzip2は同じ入力データ(メタデータ、プラットフォーム、ファイルシステムなどに関係なく)が与えられると同じファイルを一貫して生成しますが、エピソードが多ければ証拠が良いでしょう。

答え1

bzip2ファイルには次の内容のみが含まれています。基本書式署名、圧縮データ、およびそのデータの解凍に必要な情報。これにはファイル固有のメタデータは含まれていません。代わりに、圧縮ファイルのメタデータに依存します(元のファイル名と元のタイムスタンプに関係なく、に解凍され、にタイムfile.bz2スタンプfileされます)。file.bz2

変更可能な圧縮部分の1つは入力ランダム化です。しかし、これは実際に長い間無効になっており、現在のバージョンではbzip2入力をランダム化しません。

したがって、出力はbzip2入力データと圧縮レベルにのみ依存します。出力は決定的です。

bzip2私が提供できる最善の証拠は、これらすべての権威ある情報源を見つけることができるかどうかはわかりません。再現可能な Debian ビルドのガイドラインbzip2Debianで使用されているため、問題が発生した場合は同じ方法で言及されます。gzipする

関連情報