파일을 복사하면 파일의 MD5SUM이 변경됩니까?
예:
$ md5sum file01.dmp
$ cp file01.dmp file02.dmp
$ md5sum file02.dmp
두 MD5SUM이 일치하면 안 되나요?
답변1
md5sum
( sha1sum
등 sha256sum
) 파일 내용의 해시를 계산합니다. 여기에는 파일 이름이나 기타 메타데이터(예: 수정 시간)가 포함되지 않습니다. 두 파일의 내용이 동일한 경우 md5sum
각 파일에 대해 동일한 해시가 생성됩니다. (출력은 md5sum
해시 값과 파일 이름으로 구성됩니다. 파일 이름을 바꾸면 해시 값은 변경되지 않지만 출력의 파일 이름 부분은 변경됩니다.)
서로 다른 해시를 생성하는 두 파일은 항상 서로 다른 내용을 갖습니다. 복사된 파일이 다른 해시를 생성하는 경우 어떤 방식으로든 복사가 실패했거나 복사 후 파일 중 하나가 수정된 것입니다.
그러나 그것은아니요동일한 해시를 생성하는 두 파일의 내용은 동일해야 합니다. 해시는 고정된 크기이므로 다수의 서로 다른 파일이 동일한 해시를 생성합니다. 이것을 충돌이라고 합니다. 하지만발견하다충돌은 쉬운 일이 되어서는 안 됩니다. (이것은 MD5용이므로 더 이상 안전한 것으로 간주되지 않습니다. MD5는 여전히 우발적인 파일 손상을 감지하는 데 충분하지만 악의적인 수정은 아닙니다.)
답변2
md5sum 출력은 마지막 필드에 파일 이름 자체를 보고하므로 변경됩니다. 해시 자체만 출력되도록 파일 이름을 제거하려면 awk
또는 다음을 사용하십시오 cut
.
md5sum filename | cut -d ' ' -f1