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


답변:


31

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

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

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


20
질문은 일반적인 알고리즘이 아닌 CLI 도구 "md5sum"에 대해 묻는 것입니다.
jameshfisher

206

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

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

18
이것이 답이되어야합니다. 질문에는 "md5sum"태그가 있습니다.
ingyhere

3
정답을 주셔서 감사합니다.
Eddie B

완전한! 나는 그것을 시도 할 리눅스가 없었다. 하지만 :) 유래를해야합니까
Faizan

이것을 알기 위해 Linux를 사용할 필요는 없습니다. MacOSX 또는 Windows에서 동일한 결과를 생성 할 수 있습니다.
Alexandre Mulatinho

1
@alexandreMulatinho와 같은 Windows를 찾는 사람이있는 경우 : md5sum을 fciv로 바꾸고 cp를 복사본으로 바꾸면 똑같이 작동합니다. 그런 다음 Linux 용 Windows 하위 시스템을 입력하면 md5sum 해시가 fciv 해시와 일치합니다.
Jake Stevens-Haas는

4

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


3
또한 Windows 파일 시스템은 파일에 파일 이름을 저장하지 않습니다. 의 간단한 포트는 md5sum예상대로 작동해야합니다.
MauganRa

1

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


4
질문은 일반적인 알고리즘이 아닌 CLI 도구 "md5sum"에 대해 묻는 것입니다.
jameshfisher

0

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


어떤 파일에 대해 이야기하고 있습니까? 가상 디스크 이미지 ( .vmdk)? vmdk 헤더에는 파일 이름과 위치에 따라 달라질 수있는 데이터가 있습니다. 테스트에서 파일 이름을 어떻게 변경 했습니까? --- 그렇지 않으면 파일 컨텐츠 관점에서 VMFS는 일반 파일 시스템이며 파일 컨텐츠는 이름에 직접적으로 의존하지 않습니다.
pabouk

-1

댓글에 대한 응답으로 https://stackoverflow.com/a/14360831/9392847 :

이것은 하나의 파일이 다른 파일의 복사 본인 경우에만 작동하지만 이름이 다른 두 파일이 정확히 동일한 내용으로 생성 된 경우에는 작동하지 않습니다. 나는 이것을 시도했다 :

nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/1test.pdf
c5a445b7186dfb220ea79d2001acf3f1  /home/nancy/Documents/1test.pdf
nancy@nancy:~/Documents$ md5sum /home/nancy/Documents/2test.pdf
cefa063abf0c0a9e80b2b75e70100836  /home/nancy/Documents/2test.pdf

1test.pdf 및 2test.pdf 파일은 모두 gimp 소프트웨어를 사용하여 생성됩니다 . 동일한 콘텐츠를 두 개의 다른 이름으로 두 번 내 보냅니다.


즉, 파일의 내용은 정확히 동일하지 않습니다 ...이 프로그램은 각각 서로 다른 메타 데이터를 내 보내야합니다
Milney

-2

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

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

도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.