Checksum
可以依賴用 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