MD5 ดูเหมือนจะมี จัดทำเอกสารช่องโหว่ได้ดี และยังคงแพร่หลายในการใช้งาน ไม่มีใครมีเหตุผลใด ๆ ที่ทำให้มันยังคงเป็นตัวเลือกที่ทำงานได้เมื่อมีทางเลือกอื่น (เช่น SHA-2) ดูเหมือนจะแข็งแกร่งขึ้น
MD5 ดูเหมือนจะมี จัดทำเอกสารช่องโหว่ได้ดี และยังคงแพร่หลายในการใช้งาน ไม่มีใครมีเหตุผลใด ๆ ที่ทำให้มันยังคงเป็นตัวเลือกที่ทำงานได้เมื่อมีทางเลือกอื่น (เช่น SHA-2) ดูเหมือนจะแข็งแกร่งขึ้น
คำตอบ:
มันรวดเร็วในการสร้างและบ่อยครั้งที่การชนกันทางทฤษฎีเป็นไปได้ไม่ใช่ปัญหาใหญ่โต เช่นการตรวจสอบว่าไฟล์แคชมีการเปลี่ยนแปลงเพื่อหลีกเลี่ยงการดาวน์โหลดสำเนาใหม่
มาตรฐานอย่างรวดเร็วทำในปี 1996 แสดงดังต่อไปนี้:
Digest Performance in MegaBytes per Second
Pentium P5 Power Mac SPARC 4 DEC Alpha
90 MHz 80 MHz 110 MHz 200 MHz
MD5 13.1 3.1 5.1 8.5
SHA1 2.5 1.2 2.0 3.3
สำหรับการใช้งานที่ทันสมัย - บนชิปฝังตัว MD5 สามารถผลิตได้เร็วกว่า 2-3 เท่าของ SHA1 สำหรับข้อมูลเดียวกัน
MD5 แฮช "ดีพอ" สำหรับงานที่ไม่เกี่ยวกับผู้ชายส่วนใหญ่ จำได้ว่ามันยังคงเป็นเรื่องยากอย่างไม่น่าเชื่อที่จะสร้างการชนที่มีความหมายในจำนวนไบต์เดียวกัน
ตัวอย่างเช่นสมมติว่าคุณดาวน์โหลด Ubuntu 9.10 ใหม่ในสัปดาห์หน้าจากกระจกที่เชื่อถือได้ คุณต้องการตรวจสอบว่าไฟล์ถูกดาวน์โหลดอย่างถูกต้องและครบถ้วน เพียงดับ MD5 และแฮช ISO เปรียบเทียบแฮชกับแฮชที่เผยแพร่ หากแฮชตรงกันคุณสามารถมั่นใจได้ว่า ISO ถูกคัดลอกอย่างถูกต้องและครบถ้วน
และความปลอดภัยสามารถปรับปรุงได้ด้วยการเติมเกลือ
MD5 ถูกใช้อย่างกว้างขวางในฐานะฟังก์ชันเช็คซัมเนื่องจากรวดเร็วและมีอัตราส่วนการชนต่ำมาก MD5 checksum ประกอบด้วยเลขฐานสิบหก 32 หลักซึ่งให้อัตราต่อรอง 1 ~ 3.42e34 ของการชนกัน ในทางทฤษฎีคุณสามารถแฮชไฟล์ทั้งหมดในคอมพิวเตอร์ทุกเครื่องในประเทศที่มีขนาดเท่ากับ USA และไม่สร้าง collision (*)
สำหรับการเข้ารหัส MD5 เป็นทางเลือกที่ถูกต้องหากความปลอดภัยเป็นเพียงความกังวลในระดับปานกลาง มันเป็นตัวเลือกที่ทำงานได้ดีมากสำหรับการแฮ็รหัสผ่านฐานข้อมูลหรือสาขาอื่น ๆ ที่ต้องการความปลอดภัยภายในสำหรับความเร็วส่วนใหญ่ แต่ก็เป็นเพราะ MD5 มีระดับความปลอดภัยที่สมเหตุสมผล
(*) เพื่อจุดประสงค์ในการตรวจสอบส่วนใหญ่การชนกันจะมีความหมายก็ต่อเมื่อมันเกิดขึ้นระหว่างวัตถุสองชิ้นที่มีต้นกำเนิดที่คล้ายกันและมีขนาดเท่ากัน แม้ว่าความน่าจะเป็นที่ไม่ซ้ำกันของ MD5 สูง แต่การชนกันอาจเกิดขึ้นระหว่างสองไฟล์ที่แตกต่างกันอย่างมาก สมมติว่าไฟล์ฐานข้อมูล 1.5Mb และไฟล์ 35k gif สำหรับจุดประสงค์ส่วนใหญ่นี่คือการชนที่ไม่มีความหมาย มากยิ่งขึ้นเพราะ MD5 เป็นเพียงองค์ประกอบหนึ่งของการจัดทำดัชนีไฟล์ ขนาดไฟล์เป็นอีกสิ่งสำคัญ
MD5 มีการใช้กันอย่างแพร่หลายเนื่องจากมีการใช้กันอย่างแพร่หลายและการแบ่งยังไม่สำคัญพอที่จะเป็นปัญหาที่ชัดเจนในระบบที่มีอยู่
sha256sum filename.iso
แทนmd5sum filename.iso
?