bzip2 결정론적(재현 가능)을 사용하여 파일이 압축됩니까?

bzip2 결정론적(재현 가능)을 사용하여 파일이 압축됩니까?

bzip2100% 재현이 필요한 파일에 압축을 사용할 때 잠재적인 문제가 있는지 확인하려고 합니다 . 구체적으로 말하면: 메타데이터(이름/인덱스 노드, lastmod 날짜 등) 또는 다른 것이 동일한 파일 내용을 초래합니까?다른 체크섬 생성생성된 아카이브에서 .bz2?

예를 들어,gzip은 기본적으로 결정적이지 않습니다사용하지 않는 한 -n.

지금까지의 대략적인 테스트에 따르면 bzip2는 동일한 입력 데이터(메타데이터, 플랫폼, 파일 시스템 등에 관계없이)가 주어지면 동일한 파일을 일관되게 생성하지만 일화가 더 많다면 증거가 좋을 것입니다.

답변1

bzip2파일에는 다음과 같은 내용만 포함되어 있습니다.기본 형식 서명, 압축된 데이터 및 해당 데이터의 압축을 푸는 데 필요한 정보. 여기에는 파일별 메타데이터가 포함되어 있지 않습니다. 대신 압축 파일의 메타데이터에 의존합니다( 원래 파일 이름 및 원래 타임스탬프에 관계없이 로 file.bz2압축 해제되고 file로 타임스탬프됨 ).file.bz2

변경할 수 있는 압축 부분 중 하나는 입력 무작위화입니다. 그러나 이는 실제로 오랫동안 비활성화되었으며 현재 버전에서는 bzip2입력을 무작위화하지 않습니다.

따라서 출력은 bzip2입력 데이터와 압축 수준에만 의존합니다. 출력은 결정적입니다.

bzip2내가 제공할 수 있는 가장 좋은 증거 는 이 모든 것에 대한 권위 있는 출처를 찾을 수 있을지 확신할 수 없습니다.재현 가능한 데비안 빌드 지침. bzip2Debian에서 사용되므로 문제가 발생하면 같은 방식으로 언급됩니다.gzip하다.

관련 정보