MD5 ได้รับการออกแบบโดย Ronald Rivest ในปี ค.ศ. 1991 เพื่อแทนที่ MD4 ในปี ค.ศ. 1996
<?จะได้ผลลัพธ์เป็น "098f6bcd4621d373cade4e832627b4f6" ซึ่งเป็นชุดอักขระที่ไม่สามารถแปลความหมายได้.
echo md5("test");
?>
แล้วยังไม่พอหรือ?
แม้ว่า MD5 จะเป็นการเข้ารหัสแบบทางเดียว (One-way encryption) ซึ่งยากที่จะหาข้อความต้นแบบได้ แต่ก็ยังมีเทคนิคการหาข้อความต้นแบบที่เรียกว่า Brute-force. Brute-force เป็นวิธีการพยายามหาข้อความต้นแบบจากการสุ่มข้อความแล้วเข้ารหัสเพื่อหาผลลัพธ์ที่เหมือนกัน
แล้วจะป้องกันได้อย่างไร?
1. ทำการเข้ารหัส 2 ครั้งเช่น
<?2. ใช้กุญแจลับเช่น
echo md5(md5("test"));
?>
<?การทำ MD5 ใน PHP สามารถเพิ่มความเร็วเพิ่มขึ้นสำหรับ string ที่ยาวมากๆ สามารถใช้
$key = "modoeye.com";
echo md5("test".$key);
?>
<?Parameter ที่สองของฟังก์ชั่น md5 นั้นเป็นการสั่งให้ฟังก์ชั่น md5 คืนค่ามาเป็น binary การใช้งานแบบนี้จะเพิ่มความเร็วได้ 2-3 เท่าเมื่อเทียบกับการใช้
echo bin2hex(md5("test", true));
?>