programing

파일 이름을 변경하면 파일의 MD5 해시에 영향을 줍니까?

nasanasas 2020. 9. 23. 07:41
반응형

파일 이름을 변경하면 파일의 MD5 해시에 영향을 줍니까?


파일 이름을 변경하면 파일의 MD5 해시에 영향을 줍니까?


파일 이름이 해시 계산에 포함 된 경우에만 해당됩니다. 예 : 의사 코드에서 :

$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);

두 개의 개별 해시를 생성합니다.


아니요, 해시는 파일 내용에만 해당됩니다. 소스md5sumMD5 구현 에서 이를 확인할 수 있습니다 . 다음에 대한 액세스 권한이있는 경우이를 테스트 할 수도 있습니다 md5sum.

$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6  file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6  file2
$

EXT 파일 시스템을 사용하는 Linux에서는 파일 이름이 파일에 저장되지 않기 때문에 파일 이름이 파일이있는 디렉토리 항목 (dentry)에 저장되어 파일의 inode가 이름에 매핑됩니다. 파일 이름을 변경해도 Linux의 md5sum에는 영향을주지 않습니다. Windows에서는 확신 할 수 없습니다.


해시가 파일 내용에서 계산되는 경우에는 그렇지 않습니다.


ESXi (정확히 ESXi 5.5)에서 md5sum은 동일한 콘텐츠이지만 다른 파일 이름은 다릅니다. 그 결과 VMFS-5 파일 구조에 파일 이름도 포함되어 있다고 믿게됩니다. 파일 이름에 신경 쓰지 않는다면 파일 내용의 md5sum 만 확인하는 방법이 있나요? 옵션이 보이지 않았습니다. 어떤 제안?


1. md5는 FILE의 이진 내용을 기반으로 계산됩니다. 2. 파일 이름, 마지막 수정 사항 등은 메타 데이터입니다 .md5는 실제로 메타 데이터에 의존하지 않습니다. 나는 아래 단계로 이것을 테스트했고, "마지막으로 수정 된"메타 데이터로 작업 할 수 있습니다. i) "a.txt"라는 파일을 만들고 일부 콘텐츠를 추가하고 해시를 만들었습니다. 해시가 "xyz"라고 말한 ii) 그런 다음 방금 파일에 공백을 추가하고 "abc"를 반환했다고 해시를 다시 계산했습니다. iii) 방금 (ii) 단계에서 변경 사항을 제거했습니다. 다시 해시를 계산할 때 초기 해시 ( "xyz")를 얻었습니다.

이는 파일의 메타 데이터가 변경 되더라도 파일 내용이 변경되지 않을 때까지 해시는 동일하게 유지된다는 결론을 내립니다.

도움이되기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/5055143/will-changing-a-file-name-affect-the-md5-hash-of-a-file

반응형