我正在尝试确定是否存在bzip2
用于压缩需要 100% 可重现的文件的任何潜在问题。具体来说:元数据(名称/inode、lastmod 日期等)或其他任何内容是否会导致相同的文件内容在生成的存档上产生不同的校验和.bz2
?
例如,除非使用 gzip,否则默认情况下 gzip 不是确定性-n
的。
到目前为止,我的粗略测试表明,在给定相同的输入数据(无论元数据、平台、文件系统等)的情况下,bzip2 确实确实始终如一地生成相同的文件,但如果有更多的轶事证据,那就太好了。
我正在尝试确定是否存在bzip2
用于压缩需要 100% 可重现的文件的任何潜在问题。具体来说:元数据(名称/inode、lastmod 日期等)或其他任何内容是否会导致相同的文件内容在生成的存档上产生不同的校验和.bz2
?
例如,除非使用 gzip,否则默认情况下 gzip 不是确定性-n
的。
到目前为止,我的粗略测试表明,在给定相同的输入数据(无论元数据、平台、文件系统等)的情况下,bzip2 确实确实始终如一地生成相同的文件,但如果有更多的轶事证据,那就太好了。
bzip2
文件仅包含基本格式签名、压缩数据和解压缩该数据所需的信息。它们不包含任何文件特定的元数据;相反,它们依赖于压缩文件的元数据(因此无论原始文件名和原始时间戳如何,file.bz2
都未压缩为file
,时间戳为file.bz2
)。压缩的一部分可以变化,即输入随机化;但这在实践中已经被禁用了很长时间,并且当前版本
bzip2
不会随机化他们的输入。因此,输出
bzip2
仅取决于输入数据和压缩级别。输出是确定性的。我不确定您是否会找到所有这些的权威来源;
bzip2
我能提供的最好证据是Debian reproducible builds notes中没有提到任何内容。在 Debian 中使用,所以如果它确实引起了问题,它bzip2
会得到提及,就像.gzip