Thay đổi tên tệp có ảnh hưởng đến MD5 Hash của một tệp không?
Thay đổi tên tệp có ảnh hưởng đến MD5 Hash của một tệp không?
Câu trả lời:
Không, hàm băm chỉ dành cho nội dung tệp. Bạn có thể thấy điều này trong nguồnmd5sum
và triển khai MD5 của nó . Bạn cũng có thể kiểm tra điều này nếu bạn có quyền truy cập vào md5sum
:
$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6 file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6 file2
$
Trong Linux sử dụng hệ thống tệp EXT, nó sẽ không, vì tên tệp không được lưu trữ trong tệp, nó được lưu trữ trong mục nhập thư mục (răng cưa) mà tệp đó nằm trong đó, nơi inode của tệp sau đó được ánh xạ thành tên. Thay đổi tên tệp sẽ không ảnh hưởng đến md5sum của nó trong Linux. Trong Windows, tôi không thể chắc chắn.
md5sum
sẽ hoạt động như mong đợi.
Nếu hàm băm được tính từ nội dung tệp, thì không nên.
Trong ESXi (Chính xác là ESXi 5.5), md5sum trên cùng một nội dung nhưng các tên tệp khác nhau thì khác nhau. Điều đó khiến tôi tin rằng cấu trúc tệp VMFS-5 cũng bao gồm tên tệp. Nếu chúng tôi không quan tâm đến tên tệp, Có cách nào để chỉ kiểm tra md5sum của nội dung tệp không? Tôi không thể thấy bất kỳ tùy chọn nào. Bất kỳ đề xuất?
.vmdk
)? Trong tiêu đề vmdk có dữ liệu có thể phụ thuộc vào tên tệp và vị trí. Bạn đã đổi tên các tệp trong thử nghiệm của mình như thế nào? --- Mặt khác, từ quan điểm nội dung tệp, VMFS là một hệ thống tệp bình thường và nội dung của tệp không phụ thuộc trực tiếp vào tên của chúng.
Để trả lời nhận xét, https://stackoverflow.com/a/14360831/9392847 :
Điều này chỉ hoạt động nếu một tệp là bản sao của tệp khác nhưng không hoạt động khi hai tệp khác nhau có tên khác nhau được tạo với nội dung giống hệt nhau. Tôi đã thử điều này:
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
Cả hai tệp 1test.pdf và 2test.pdf đều được tạo bằng phần mềm gimp . Cùng một nội dung được xuất hai lần với hai tên khác nhau.
1.md5 được tính toán dựa trên nội dung nhị phân của FILE. 2.Tên tập tin, sửa đổi lần cuối, v.v. mọi thứ là dữ liệu meta.md5 không thực sự dựa vào dữ liệu siêu dữ liệu. Tôi đã kiểm tra điều này bằng các bước dưới đây, hãy làm việc với siêu dữ liệu "được sửa đổi lần cuối" i) Tôi đã tạo một tệp có tên "a.txt" và thêm một số nội dung và tạo một hàm băm nói rằng hàm băm là "xyz" ii) Sau đó, tôi có chỉ cần thêm một khoảng trống trong tệp và một lần nữa tính toán băm nói rằng nó trả về "abc" iii) Tôi vừa xóa thay đổi của mình ở bước (ii), khi tính toán lại băm, tôi đã có được băm ban đầu ("xyz")
Điều này kết luận rằng ngay cả khi siêu dữ liệu của tệp được thay đổi, hàm băm vẫn giữ nguyên cho đến khi nội dung tệp không thay đổi.
Hy vọng nó giúp.