เครื่องมือสร้าง MD5

5 จาก 3 การให้คะแนน

เครื่องมือสร้าง MD5 เป็นเครื่องมือฟรีที่แปลงสตริงใดๆ ให้เป็นแฮช MD5 ความยาว 32 อักขระ

MD5 คืออะไร และยังปลอดภัยอยู่หรือไม่?

MD5 เป็นฟังก์ชันแฮชแบบ 128 บิต ซึ่งปัจจุบันถูกพิสูจน์แล้วว่ามีช่องโหว่ทางการเข้ารหัสและเลิกแนะนำให้ใช้กับงานที่ต้องการความปลอดภัย MD5 ให้ผลลัพธ์คงที่ กล่าวคือ อินพุตเดียวกันจะได้ผลลัพธ์เดียวกัน และทำงานทางเดียว จึงไม่สามารถคำนวณย้อนกลับจากลายนิ้วมือดิจิทัลไปเป็นข้อมูลต้นฉบับได้โดยตรงในภาวะปกติ

Ronald Rivest ออกแบบ MD5 ในปี 1991 เพื่อเป็นรุ่นต่อจาก MD4 ค่าไดเจสต์ขนาด 128 บิตมักแสดงเป็นอักขระเลขฐานสิบหก 32 ตัว โดยใช้ตัวเลข 0 ถึง 9 และตัวอักษร a ถึง f ด้วยผลลัพธ์ที่กะทัดรัดและประมวลผลได้รวดเร็ว MD5 จึงเคยถูกใช้อย่างแพร่หลายกับการดาวน์โหลดซอฟต์แวร์ ฐานข้อมูล และระบบยืนยันตัวตนรุ่นเก่า

นักวิจัยสาธิตการชนกันของ MD5 ที่ใช้งานได้จริงในปี 2004 และงานวิจัยต่อมายังทำให้สามารถจงใจสร้างเอกสารที่แตกต่างกันแต่มีค่าไดเจสต์เดียวกันได้ ห้ามใช้ MD5 กับลายเซ็นดิจิทัลหรือใบรับรอง และไม่เหมาะสำหรับการตรวจสอบความสมบูรณ์ในกรณีที่ผู้โจมตีอาจอาศัยการชนกัน ความรวดเร็วของ MD5 ยังทำให้ไม่เหมาะกับการจัดเก็บรหัสผ่าน ตัวสร้าง MD2 และเครื่องมือสร้าง MD4 รองรับอัลกอริทึมเก่าที่เกี่ยวข้องกัน แต่ทั้งสองอย่างไม่ใช่ทางเลือกด้านความปลอดภัยที่เหมาะสม

สร้างแฮช MD5 อย่างไร?

ป้อนหรือวางสตริงที่ต้องการให้ตรงทุกอักขระ จากนั้นเรียกใช้เครื่องมือแล้วคัดลอกค่าจาก แฮช MD5 การคำนวณจะดำเนินการบนเซิร์ฟเวอร์ด้วยฟังก์ชัน md5 ของ PHP

  1. ตรวจสอบสตริงที่ป้อนในเครื่องมือสร้าง MD5 ให้แน่ใจว่าไม่มีช่องว่าง การขึ้นบรรทัดใหม่ หรือการเปลี่ยนตัวพิมพ์โดยไม่ตั้งใจ
  2. สร้างค่าไดเจสต์ แล้วตรวจสอบว่าผลลัพธ์มีอักขระเลขฐานสิบหก 32 ตัว
  3. เปรียบเทียบหรือจัดเก็บอักขระทั้ง 32 ตัวที่แสดงใน แฮช MD5 อย่าใช้เพียงส่วนที่ตัดให้สั้นลง

อินพุตจะถูกส่งไปยังเซิร์ฟเวอร์ผ่าน HTTPS และไม่มีการจัดเก็บไว้ ถึงอย่างนั้น อย่าส่งรหัสผ่าน คีย์ส่วนตัว รหัสกู้คืน หรือข้อมูลลับอื่นๆ เนื่องจาก MD5 ไม่เหมาะสำหรับปกป้องข้อมูลเหล่านี้ และการประมวลผลบนเซิร์ฟเวอร์หมายความว่าอินพุตจะออกจากอุปกรณ์ของคุณ

ถอดรหัสหรือย้อนกลับแฮช MD5 ได้ไหม?

ไม่ได้ แฮช MD5 ถอดรหัสไม่ได้ เพราะการแฮชไม่ใช่การเข้ารหัสและไม่มีคีย์สำหรับถอดรหัส ค่าไดเจสต์ไม่ได้เก็บสำเนาอินพุตที่แปลงย้อนกลับได้

อย่างไรก็ตาม นั่นไม่ได้หมายความว่าแฮช MD5 เป็นข้อมูลส่วนตัว ผู้โจมตีสามารถแฮชอินพุตที่คาดว่าน่าจะใช่ แล้วนำผลลัพธ์มาเทียบกับค่าไดเจสต์เป้าหมาย รหัสผ่านที่ใช้กันทั่วไป ตัวเลขสั้นๆ และคำในพจนานุกรมมักถูกค้นพบได้ด้วยการเดาหรือฐานข้อมูลแฮชที่คำนวณไว้ล่วงหน้า การชนกันไม่เหมือนกับการย้อนกลับ เพราะเป็นการหาอินพุตสองค่าที่แตกต่างกันแต่ได้ค่าไดเจสต์เดียวกัน โดยไม่ได้เริ่มจากอินพุตที่กำหนดไว้ และไม่ได้กู้คืนอินพุตต้นฉบับ

MD5 ยังเหมาะกับงานประเภทใด?

ใช้ MD5 เฉพาะเมื่อจำเป็นต่อความเข้ากันได้ หรือเมื่อต้องใช้เป็นเช็กซัมในสภาพแวดล้อมที่ไม่มีผู้ประสงค์ร้ายเท่านั้น MD5 ยังใช้ระบุการเปลี่ยนแปลงโดยไม่ได้ตั้งใจ จัดกลุ่มเนื้อหาซ้ำ และจับคู่ตัวระบุในระบบเก่าได้ ตราบใดที่งานนั้นไม่ได้อาศัยคุณสมบัติต้านทานการชนกัน

  • เช็กซัม ใช้ตรวจพบความเสียหายโดยไม่ได้ตั้งใจระหว่างการโอนไฟล์ภายในได้ แต่ไม่สามารถพิสูจน์ว่าไฟล์เป็นของแท้
  • การขจัดข้อมูลซ้ำ สามารถใช้ MD5 เป็นลายนิ้วมือเริ่มต้นของเนื้อหาได้ แต่ควรเปรียบเทียบขนาดไฟล์หรือเนื้อหาจริงก่อนลบข้อมูลเพียงเพราะค่าไดเจสต์ตรงกัน
  • ความเข้ากันได้กับระบบเก่า อาจจำเป็นต้องใช้ MD5 เมื่อฐานข้อมูล โปรโตคอล หรือผู้ให้บริการเดิมเผยแพร่เฉพาะค่า MD5

สำหรับการตรวจสอบความปลอดภัยใหม่ๆ ให้ใช้ฟังก์ชันแฮชเชิงเข้ารหัสที่ทันสมัย เช่น SHA-256 หรือ SHA-512 ส่วนรหัสผ่านควรใช้รูปแบบการแฮชรหัสผ่านที่ออกแบบมาโดยเฉพาะ เช่น Argon2id, bcrypt หรือ scrypt วิธีเหล่านี้จงใจทำให้การเดาซ้ำๆ ใช้ทรัพยากรมาก ต่างจาก MD5

รายละเอียดของอินพุต

MD5 แฮชข้อมูลระดับไบต์ ดังนั้นอักขระทุกตัวในรูปแบบข้อมูลที่ส่งเข้ามาจึงมีผล ข้อความ hello ให้ค่าไดเจสต์เลขฐานสิบหก 32 อักขระ ส่วน Hello ให้ค่าที่ต่างออกไป เพราะตัวพิมพ์ใหญ่ทำให้ไบต์ของอินพุตเปลี่ยน แม้แต่การเพิ่มช่องว่างหนึ่งตัวท้ายข้อความก็ทำให้ผลลัพธ์เปลี่ยนเช่นกัน

  • invoice-1042 และ invoice-1043 ให้ผลลัพธ์ 32 อักขระที่ดูไม่เกี่ยวข้องกัน
  • เครื่องมือสร้าง MD5 จะถือว่าตัวเลขที่ป้อนในช่องสตริงเป็นข้อความ ดังนั้น 0012 จึงแตกต่างจาก 12
  • เครื่องหมายวรรคตอน แท็บ และการขึ้นบรรทัดใหม่ที่ป้อนในเครื่องมือสร้าง MD5 ล้วนเป็นส่วนหนึ่งของอินพุตแบบสตริง ย่อหน้าที่คัดลอกมาอาจมีอักขระขึ้นบรรทัดใหม่ซ่อนอยู่ที่ท้ายข้อความ
  • อักขระที่มีเครื่องหมายกำกับเสียงและอักขระที่ไม่ใช่ละตินขึ้นอยู่กับการเข้ารหัสอักขระ ระบบที่นำแฮชมาเปรียบเทียบกันควรใช้การเข้ารหัสแบบเดียวกัน ซึ่งโดยทั่วไปคือ UTF-8
  • ตัว MD5 เองกำหนดค่าไดเจสต์สำหรับอินพุตว่างไว้ และประมวลผลลำดับไบต์ขนาดยาวได้ เครื่องมือนี้รับอินพุตแบบสตริง โดยหน้าเว็บไม่ได้ระบุว่ารองรับไฟล์หรืออินพุตที่มีความยาวไม่จำกัด

คำถามที่พบบ่อย

เลขฐานสิบหกตัวพิมพ์ใหญ่ทำให้ค่าไดเจสต์ MD5 เปลี่ยนไหม?

ไม่เปลี่ยน เลขฐานสิบหกตัวพิมพ์ใหญ่และตัวพิมพ์เล็กสามารถแทนค่า 128 บิตเดียวกันได้ ดังนั้น A และ a ที่แสดงในค่าไดเจสต์จึงมีความหมายเชิงตัวเลขเหมือนกัน อย่างไรก็ตาม ฐานข้อมูลที่เปรียบเทียบแบบแยกตัวพิมพ์ใหญ่ออกจากตัวพิมพ์เล็กอาจมองว่าสตริงทั้งสองต่างกัน จึงควรปรับรูปแบบให้เหมือนกันก่อนเปรียบเทียบ

เติม salt แล้วจะใช้ MD5 เก็บรหัสผ่านได้อย่างปลอดภัยไหม?

ไม่ได้ salt ที่ไม่ซ้ำกันช่วยป้องกันการนำตารางที่คำนวณไว้ล่วงหน้ากลับมาใช้แบบง่ายๆ แต่ MD5 ยังประมวลผลเร็วเกินไปสำหรับการจัดเก็บรหัสผ่าน ควรใช้ฟังก์ชันแฮชรหัสผ่านที่บันทึก salt และค่ากำหนดต้นทุนการประมวลผลไว้เป็นส่วนหนึ่งของค่าที่จัดเก็บ

ไฟล์สองไฟล์ที่ต่างกันมีแฮช MD5 เหมือนกันได้ไหม?

ได้ การตรงกันในลักษณะนี้เรียกว่าการชนกัน และมีวิธีที่ใช้ได้จริงสำหรับจงใจสร้างการชนกันของ MD5 การชนกันโดยบังเอิญมีโอกาสเกิดขึ้นน้อยในชุดข้อมูลขนาดเล็ก แต่ระบบที่จัดการข้อมูลซึ่งอาจถูกโจมตีหรือมีมูลค่าสูงควรใช้ทางเลือกที่ต้านทานการชนกันได้

ทำไมข้อความเดียวกันบน Windows กับ Linux ถึงได้แฮชไม่เหมือนกัน?

ไฟล์อาจใช้รูปแบบการจบบรรทัด การเข้ารหัสอักขระ หรือเครื่องหมายลำดับไบต์ต่างกัน แม้ข้อความที่มองเห็นจะเหมือนกันก็ตาม เมื่อต้องการเปรียบเทียบผลลัพธ์จากเครื่องมือสร้าง MD5 นี้กับผลลัพธ์ MD5 อื่น ให้ใช้อินพุตแบบสตริงที่มีการเข้ารหัสอักขระและรูปแบบการจบบรรทัดเหมือนกัน

แปลงแฮช MD5 เป็นแฮช SHA-256 ได้ไหม?

คุณนำข้อความ MD5 ความยาว 32 อักขระไปแฮชด้วย SHA-256 ได้ แต่ผลที่ได้ไม่ใช่ค่าไดเจสต์ SHA-256 ของอินพุตต้นฉบับ หากต้องการย้ายระบบอย่างถูกต้อง ต้องนำข้อมูลต้นฉบับมาแฮชใหม่ด้วย SHA-256

ตรวจสอบก่อนนำไปใช้

ก่อนนำผลลัพธ์ไปใช้งาน ให้ยืนยันไบต์ของอินพุตอย่างละเอียด เปรียบเทียบอักขระให้ครบทั้ง 32 ตัว และพิจารณาว่างานนั้นต้องการตรวจหาความเสียหายโดยไม่ได้ตั้งใจ หรือต้องการป้องกันการดัดแปลง หากเกี่ยวข้องกับการยืนยันความเป็นของแท้ รหัสผ่าน หรือลายเซ็น MD5 ไม่ใช่ตัวเลือกที่เหมาะสม

เครื่องมือที่คล้ายกัน

ตัวสร้าง MD2

สร้างแฮช MD2 จากข้อความใด ๆ ด้วยเครื่องมือสร้าง MD2 ของเราเพื่อยืนยันความถูกต้องของข้อมูล

4,789
28
เครื่องมือสร้าง MD4

สร้างแฮช MD4 สำหรับอินพุตสตริงใดๆ

4,894
32

เครื่องมือยอดนิยม