แฮช MD5 เครื่องกำเนิดไฟฟ้า
สร้างแฮช MD5 จากข้อความหรือไฟล์ทันทีในเบราว์เซอร์ของคุณ ฟรี เป็นส่วนตัว และไม่จำเป็นต้องอัปโหลด
สร้างแฮช MD5 จากข้อความหรือไฟล์ทันทีในเบราว์เซอร์ของคุณ ฟรี เป็นส่วนตัว และไม่จำเป็นต้องอัปโหลด
MD5 (Message Digest 5) เป็นฟังก์ชันแฮชการเข้ารหัส 128 บิตที่เผยแพร่โดย Ronald Rivest ในปี 1991 โดยรับอินพุตทุกความยาวเท่าใดก็ได้และสร้างเอาต์พุตเลขฐานสิบหกคงที่ 32 อักขระที่กำหนดขึ้นเอง — อินพุตเดียวกันจะสร้างแฮชเดียวกันเสมอ — และเป็นแบบทางเดียว ซึ่งหมายความว่าอินพุตไม่สามารถกู้คืนจากแฮชเพียงอย่างเดียว MD5 เป็นฟังก์ชันแฮชสำหรับวัตถุประสงค์ทั่วไปที่โดดเด่นตลอดช่วงทศวรรษ 1990 และต้นปี 2000 ก่อนที่จะถูกแทนที่ด้วยฟังก์ชันตระกูล SHA-2 เพื่อวัตถุประสงค์ในการเข้ารหัส
MD5 ใช้งานไม่ได้เนื่องจากการใช้การเข้ารหัส การโจมตีการชนกันในทางปฏิบัติ (การค้นหาสองอินพุตที่สร้างแฮชเดียวกัน) ได้รับการสาธิตมาตั้งแต่ปี 2547 และการชนกันของคำนำหน้าที่เลือกสามารถทำได้ในเวลาไม่กี่ชั่วโมงบนฮาร์ดแวร์สินค้าโภคภัณฑ์ อย่าใช้ MD5 สำหรับการแฮชรหัสผ่าน ลายเซ็นดิจิทัล ลายนิ้วมือของใบรับรอง หรือบริบทใดๆ ที่การต้านทานการชนกันมีความสำคัญ SHA-256 และ bcrypt เป็นสิ่งทดแทนที่เหมาะสม
MD5 ยังคงมีประโยชน์สำหรับการตรวจสอบที่ไม่ใช่การเข้ารหัสซึ่งการต้านทานการชนไม่ใช่คุณสมบัติด้านความปลอดภัย: การตรวจจับความเสียหายของไฟล์โดยไม่ตั้งใจ การขจัดการอัปโหลดที่ซ้ำกันในระบบที่คุณควบคุม และสร้างตัวระบุแบบสั้นสำหรับคีย์แคช ตัวสร้างนี้รันทั้งหมดในเบราว์เซอร์ของคุณโดยใช้ JavaScript MD5 ไม่มีอินพุตออกจากอุปกรณ์ของคุณ
การตรวจสอบความสมบูรณ์ของไฟล์อย่างรวดเร็วยังคงเป็นกรณีการใช้งาน MD5 ที่มีการป้องกันมากที่สุด เมื่อไซต์ดาวน์โหลดเผยแพร่ MD5 ควบคู่ไปกับไฟล์ ผู้อ่านสามารถตรวจสอบได้ว่าการดาวน์โหลดมาถึงครบถ้วนหรือไม่ การตรวจสอบป้องกันข้อผิดพลาดในการส่ง ไม่ใช่การปลอมแปลงที่เป็นอันตราย — ผู้โจมตีที่เชี่ยวชาญสามารถสร้างไฟล์ที่ตรงกับ MD5 ที่เลือก — แต่สำหรับการตรวจสอบความสมบูรณ์แบบไม่เป็นทางการก็ไม่เป็นไร
MD5 ยังมีประโยชน์ในฐานะตัวระบุแบบสั้นตามที่กำหนดอีกด้วย เลเยอร์การแคช ระบบขจัดความซ้ำซ้อน และการสร้าง ETag มักจะแฮชเนื้อหาด้วย MD5 เนื่องจากผลลัพธ์นั้นสั้น ประมวลผลได้เร็ว และดีเพียงพอสำหรับจุดประสงค์ที่ไม่เกี่ยวกับความปลอดภัย การออกแบบใหม่ควรใช้ SHA-256 หรือ xxHash แต่ระบบที่มีอยู่ซึ่งใช้ MD5 สำหรับตัวระบุจะไม่ปลอดภัยในบทบาทนี้
วางข้อความหรืออัปโหลดไฟล์ รับแฮชฐานสิบหก 32 ตัวอักษร
MD5 ประมวลผลอินพุตในบล็อก 512 บิต (64 ไบต์) แต่ละบล็อกจะอัปเดตสถานะภายใน 128 บิตผ่านการดำเนินการสี่รอบ แต่ละรอบใช้ฟังก์ชันไม่เชิงเส้น การเพิ่มโมดูลาร์ และการหมุนระดับบิตที่แตกต่างกัน สถานะสุดท้ายคือการย่อย
อัลกอริธึมจำเป็นต้องมีการเติม: อินพุตจะถูกต่อท้ายด้วย 1 บิต จากนั้น 0 บิต จากนั้นฟิลด์ความยาว 64 บิต เพื่อให้ความยาวทั้งหมดเป็นผลคูณของ 512 บิต เพื่อให้แน่ใจว่าทุกอินพุตมีการเข้ารหัสที่นำหน้าความยาวไม่ซ้ำกัน
เอาต์พุตจะถูกแปลเป็น 16 ไบต์ตามลำดับ little-endian จากนั้นพิมพ์เป็นอักขระฐานสิบหก 32 ตัว เครื่องมือบางตัวพิมพ์ตัวพิมพ์ใหญ่, ตัวพิมพ์เล็ก; ค่าจะเท่ากัน