อาจเป็นปัญหาใหญ่ในกรณีของคุณเนื่องจากมี การชนกันของคำนำหน้าเหมือนกันใน MD5;
|คำนำหน้านามเดียวกัน | ส่วนฟรีของไฟล์ A | คำต่อท้ายที่เหมือนกัน |
|คำนำหน้านามเดียวกัน | ส่วนฟรีของไฟล์ B | คำต่อท้ายที่เหมือนกัน |
^
พวกเขาชนกันที่นี่| ส่วนที่เหลือเหมือนกัน
แม้ว่าทุกวันนี้ การค้นหาการชนกันของ MD5 นั้นง่ายมาก โดยที่ผู้โจมตีสามารถควบคุมบล็อกกลางของ MD5 ได้ ความน่าจะเป็นของสิ่งนี้อาจลดลงหากไฟล์นั้นไม่ได้ถูกกำหนดโดยพลการ เนื่องจากจะทำให้ผู้โจมตีมีโอกาสที่จะเกิดการชนกันน้อยลง
ในกรณีของคุณ ไม่มีผู้โจมตีและคุณกำลังมองหาการปะทะกันที่ไม่มีการควบคุม ใน VCS ไฟล์ที่มีการแก้ไขจำนวนมากอาจตกอยู่ในกลุ่มของสถานการณ์การชนกันที่เป็นไปได้ คำนำหน้าเหมือนกัน ส่วนที่เปลี่ยนแปลงบางส่วน และคำต่อท้ายที่เหมือนกัน ปัญหาหลักของคุณคือการกำหนดส่วนที่จะทดสอบ แค่บล็อกที่สอง (MD5 มีบล็อก 512 บิต) หรือแค่บล็อกที่สามหรือบล็อกที่สองและสาม...
ทำไมต้องกังวลกับ MD5 และทำการตรวจสอบครั้งที่สองในขณะที่เรามีทางเลือกอื่นที่ดีกว่าและเร็วกว่า
- เบลค2 เร็วที่สุดในตอนนี้ เบลค3 ซึ่งเร็วกว่า BLAKE2 ~2 เท่า และ BLAKE3 ~9 เท่า เร็วกว่า MD5 ใช้ BLAKE2/3 กับเอาต์พุต 512 บิต และมีไฟล์ $2^{256}$- ความต้านทานการชนกันของเวลา ดังนั้นการสร้างการชนกันจึงเป็นไปไม่ได้ในการคำนวณ
- SHA-512 ซึ่งเกือบจะมีความเร็วเท่ากับ MD5 และสามารถรับประกันการต้านทานการชนได้ดีกว่ามาก ซึ่ง MD5 ไม่สามารถเทียบเคียงได้ไม่ว่าด้วยวิธีใด
เดอะ บทสรุปของ Corkami;
ฆ่า MD5!
อย่าใช้ MD5 เว้นแต่คุณจะตรวจหาความผิดปกติหรือบล็อกการชนกันของไฟล์ อย่าใช้ MD5!
ไม่ใช่แฮชการเข้ารหัส แต่เป็นฟังก์ชั่นของเล่น!