อย่าพึ่งพาผลรวม MD5
ผลรวม MD5 ไม่ใช่วิธีที่เชื่อถือได้ในการตรวจสอบรายการซ้ำพวกเขาเป็นเพียงวิธีการตรวจสอบความแตกต่าง
ใช้ MD5 เพื่อค้นหาผู้สมัครที่เป็นไปได้ที่ ซ้ำกันแล้วสำหรับแต่ละคู่ที่แบ่งปัน MD5
- เปิดทั้งสองไฟล์
- ค้นหาไปข้างหน้าในไฟล์เหล่านั้นจนกว่าจะมีความแตกต่าง
เห็นฉันได้รับ downvoted โดยคนทำไร้เดียงสาวิธีการที่จะยื่นบัตรประจำตัวซ้ำกันหากคุณกำลังจะต้องพึ่งพาอย่างสิ้นเชิงกับขั้นตอนวิธีกัญชาเพื่อเห็นแก่ความดีใช้บางสิ่งบางอย่างที่รุนแรงเช่น SHA256 หรือ SHA512 อย่างน้อยคุณจะลดความน่าจะเป็นในการ ระดับที่เหมาะสมโดยการตรวจสอบบิตเพิ่มเติม MD5 อ่อนแออย่างมากสำหรับสภาวะการชน
ฉันยังแนะนำให้ผู้คนอ่านรายชื่อรับเมลที่นี่ชื่อ 'file check': http://london.pm.org/pipermail/london.pm/Week-of-Mon-20080714/thread.html
หากคุณพูดว่า "MD5 สามารถระบุไฟล์ทั้งหมดโดยไม่ซ้ำกัน" แสดงว่าคุณมีข้อผิดพลาดทางตรรกะ
ได้รับช่วงของค่าของความยาวที่แตกต่างจาก 40,000 ไบต์ในความยาว 100,000,000,000 ไบต์ในความยาวจำนวนรวมของการอยู่รวมกันพร้อมที่จะช่วงนั้นอย่างมากเกินจำนวนที่เป็นไปได้ของค่าที่แสดงโดย MD5 ชั่งในที่เพียง 128 บิตของความยาว
แสดงชุดค่าผสม 2 ^ 100,000,000,000 ชุดค่าผสม 2 ^ 128 เท่านั้น ฉันไม่คิดว่าเป็นไปได้
วิธีที่น้อยที่สุด
วิธีไร้เดียงสาน้อยที่สุดและวิธีที่เร็วที่สุดในการกำจัดวัชพืชที่ซ้ำกันมีดังนี้
- ตามขนาด : ไฟล์ที่มีขนาดต่างกันต้องไม่เหมือนกัน ใช้เวลาเล็กน้อยเนื่องจากไม่ต้องเปิดไฟล์
- โดย MD5 : ไฟล์ที่มีค่า MD5 / Sha ที่แตกต่างกันจะต้องไม่เหมือนกัน การดำเนินการนี้ใช้เวลานานขึ้นเล็กน้อยเนื่องจากต้องอ่านไบต์ทั้งหมดในไฟล์และดำเนินการทางคณิตศาสตร์ แต่จะทำให้การเปรียบเทียบหลายรายการเร็วขึ้น
- ความล้มเหลวของความแตกต่างด้านบน : ดำเนินการเปรียบเทียบไบต์ของไฟล์ นี่คือการทดสอบที่ช้าในการดำเนินการซึ่งเป็นสาเหตุที่เหลือไว้จนกว่าจะพิจารณาปัจจัยการขจัดอื่น ๆ ทั้งหมด
Fdupesทำเช่นนี้ และคุณควรใช้ซอฟต์แวร์ที่ใช้เกณฑ์เดียวกัน