การเปลี่ยนชื่อไฟล์จะส่งผลต่อ MD5 Hash ของไฟล์หรือไม่
การเปลี่ยนชื่อไฟล์จะส่งผลต่อ MD5 Hash ของไฟล์หรือไม่
คำตอบ:
เฉพาะในกรณีที่ชื่อไฟล์รวมอยู่ในการคำนวณแฮช เช่นในรหัสหลอก:
$hash1 = md5(contents of file);
$hash2 = md5(name of file + contents of file);
จะสร้างแฮชสองอันแยกกัน
ไม่แฮชเป็นของเนื้อหาไฟล์เท่านั้น คุณสามารถดูนี้ในแหล่งที่มาสำหรับmd5sum
และการดำเนินงานของ MD5 คุณสามารถทดสอบสิ่งนี้ได้หากคุณสามารถเข้าถึงmd5sum
:
$ echo "some arbitrary content" > file1
$ cp file1 file2
$ md5sum file1
f0007cbddd79de02179de7de12bec4e6 file1
$ md5sum file2
f0007cbddd79de02179de7de12bec4e6 file2
$
ใน Linux ที่ใช้ระบบไฟล์ EXT จะไม่เนื่องจากชื่อไฟล์ไม่ได้ถูกเก็บไว้ในไฟล์ชื่อไฟล์จะถูกเก็บไว้ในรายการไดเร็กทอรี (dentry) ที่ไฟล์นั้นอยู่ซึ่งไอโหนดของไฟล์จะถูกแมปกับชื่อ การเปลี่ยนชื่อไฟล์จะไม่มีผลกับ md5sum ใน Linux ใน Windows ฉันไม่สามารถแน่ใจได้
md5sum
ควรทำงานตามที่คาดไว้
หากแฮชคำนวณจากเนื้อหาของไฟล์ไม่ควรทำเช่นนั้น
ใน ESXi (อย่างแม่นยำ ESXi 5.5) md5sum บนเนื้อหาเดียวกัน แต่ชื่อไฟล์ต่างกัน นั่นทำให้ฉันเชื่อว่าโครงสร้างไฟล์ VMFS-5 มีชื่อไฟล์ด้วย หากเราไม่กังวลเกี่ยวกับชื่อไฟล์มีวิธีตรวจสอบเฉพาะ md5sum ของเนื้อหาไฟล์หรือไม่? ฉันไม่เห็นตัวเลือกใด ๆ ข้อเสนอแนะใด ๆ ?
.vmdk
)? ในส่วนหัว vmdk มีข้อมูลซึ่งอาจขึ้นอยู่กับชื่อไฟล์และตำแหน่ง คุณเปลี่ยนชื่อไฟล์ในการทดสอบของคุณอย่างไร? --- มิฉะนั้นจากมุมมองเนื้อหาไฟล์ VMFS เป็นระบบไฟล์ปกติและเนื้อหาของไฟล์ไม่ได้ขึ้นอยู่กับชื่อของไฟล์โดยตรง
ในการตอบกลับความคิดเห็น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 เนื้อหาเดียวกันจะถูกส่งออกสองครั้งโดยมีชื่อต่างกันสองชื่อ
1.md5 คำนวณจากเนื้อหาไบนารีของ FILE 2. ชื่อไฟล์การแก้ไขล่าสุด ฯลฯ สิ่งต่างๆคือ meta data.md5 ไม่ได้พึ่งพาข้อมูลเมตา ฉันได้ทดสอบสิ่งนี้ด้วยขั้นตอนด้านล่างให้ทำงานกับ meta-data ที่ "แก้ไขล่าสุด" i) ฉันได้สร้างไฟล์ชื่อ "a.txt" และเพิ่มเนื้อหาบางส่วนและสร้างแฮชว่าแฮชคือ "xyz" ii) จากนั้นฉันก็มี เพิ่งเพิ่มช่องว่างในไฟล์และคำนวณแฮชอีกครั้งบอกว่ามันส่งคืน "abc" iii) ฉันเพิ่งลบการเปลี่ยนแปลงในขั้นตอน (ii) ในการคำนวณแฮชอีกครั้งฉันได้แฮชเริ่มต้น ("xyz")
สรุปได้ว่าแม้ว่าข้อมูลเมตาของไฟล์จะเปลี่ยนไป แต่แฮชก็ยังคงเหมือนเดิมจนกว่าเนื้อหาของไฟล์จะไม่เปลี่ยนแปลง
หวังว่าจะช่วยได้