2016-11-10 6 views
0

압축해야하는 대용량 파일이 있지만 원본 파일의 압축 해시 값이 원본 파일과 동일해야합니다. 나는 더 작은 파일에서 해쉬 값을 다르게 시도했지만 메타 데이터 변경 때문에 이것이 가능할 것이라고 생각하고있다. 압축 후에도 파일이 변경되지 않도록하려면 어떻게해야합니까?압축하면 해시 값이 변경됩니까?

+0

우선 압축되지 않은 원래 파일을 해시 한 다음 압축 된 파일을 해시 한 다음 예에서 다른 해시 값을 갖게됩니다. 반면에 원래의 압축되지 않은 파일을 해시 한 다음 압축을 통해 내용을 해시하면 (즉, 압축 해제 및 해시), 아니요, 다른 해시가 깨진 압축 또는 압축 해제를 나타냅니다. –

답변

0

사용중인 shash에 따라 다릅니다. crc32를 사용하는 경우 해시를 동일하게 만드는 것이 매우 쉽습니다. MD5가 이미 가능할 수도 있습니다 (저는 예술의 시작을 알지 못합니다), SHA1은 아마도 몇 년 후에 가능할 것입니다. SHA256을 사용하고 있다면 더 나은 것을 포기하십시오.

해시 알고리즘이 압축 설정에 대해 명확하게 알고 있지 않거나 입력 파일이 해시 충돌을 발생 시키도록 매우 조심스럽게 만들어진 경우가 아니면 해시가 압축 전후에 변경됩니다. 즉, 표준 암호화 해시가 압축시 변경됩니다.

해시 알고리즘은 모든 의미가없는 비트 스트림입니다. 압축 방식에 대해서는 알지 못하므로 그렇게해서는 안됩니다.

+0

해시 값이 이전과 이후에 해시를 시도했는데 해시 값이 다르기 때문에이 파일이 다른 파일 (다른 이름과 생성 날짜)에 대한 메타 데이터 때문인지 궁금합니다. – michal111

+0

어떤 플랫폼을 사용하고 있습니까? Linux/Mac/Unix 환경에 있다면, 설명하는 것이 가장 쉽습니다 : – Matthias

+0

'$ cat myFile | md5sum' 대'$ cat myFile | compressionProgram | md5sum' md5sum 프로그램은 메타 데이터 나 파일 이름을 전혀 볼 수 없습니다. – Matthias

0

해시가 CRC-32 인 경우 압축 된 데이터에 4 바이트를 삽입하거나 추가 할 수 있으며 원본 CRC를 갖도록 설정할 수 있습니다. 예를 들어, gzip 스트림에서 4 바이트의 추가 블록을 헤더에 삽입 할 수 있습니다.

MD5와 같이 문제의 태그로 지적 된 암호화 해시의 전체적인 지점은이를 매우 어렵게 만들거나 실제로 불가능하게 만드는 것입니다.