Pennapa พลังงานการช่วยเหลือ ( Level 1 ) คะแนนขอบคุณจากสมาชิก ( 0 ) ตอบกระทู้ ( 6 ) เขียนบทความ ( 0 ) | |
poomtest2 พลังงานการช่วยเหลือ ( Level 1 ) คะแนนขอบคุณจากสมาชิก ( 0 ) ตอบกระทู้ ( 1 ) เขียนบทความ ( 0 ) | |
bamossza พลังงานการช่วยเหลือ ( Level 3 ) คะแนนขอบคุณจากสมาชิก ( 16 ) ตอบกระทู้ ( 112 ) เขียนบทความ ( 28 ) | |
Pennapa พลังงานการช่วยเหลือ ( Level 1 ) คะแนนขอบคุณจากสมาชิก ( 0 ) ตอบกระทู้ ( 6 ) เขียนบทความ ( 0 ) | |
bamossza พลังงานการช่วยเหลือ ( Level 3 ) คะแนนขอบคุณจากสมาชิก ( 16 ) ตอบกระทู้ ( 112 ) เขียนบทความ ( 28 ) | |
bamossza
พลังงานการช่วยเหลือ
( Level 3 )
คะแนนขอบคุณจากสมาชิก
( 16 )
ตอบกระทู้ ( 112 )
เขียนบทความ ( 28 )
MD5 ย่อมาจาก Message-Digest algorithm 5 คือ รูปแบบการเข้ารหัสแบบ Hash ชนิดหนึ่ง
การเข้ารหัสแบบ Hash (Cryptographic hash) คือ การแปลงรูปแบบของข้อมูลที่รับเข้ามาไม่ว่าขนาดเท่าใดก็ตาม ให้อยู่ในอีกรูปแบบหนึ่งที่มีขนาดคงที่ เพราะฉะนั้น จะไม่สามารถเรียกดูข้อมูลต้นฉบับได้ (Decrypt) ทำได้เพียงตรวจสอบว่าข้อมูลที่ให้มาแต่ละครั้งเหมือนกันหรือไม่ ความปลอดภัยจึงค่อนข้างสูง ในที่นี้ MD5 เป็นการเข้ารหัสแบบ 128-bit ให้ค่าเป็นตัวเลขฐาน 16 (0123456789abcd) ขนาด 32 ตัวอักษร แต่ก็มีบางประเภทที่ให้ค่าเป็น binary และ base64
ประโยชน์ของการเข้ารหัสแบบ MD5
1.นำไปตรวจสอบความถูกต้องของไฟล์ สมมติว่ามีไฟล์สองไฟล์ ถ้าเนื้อหาในไฟล์เหมือนกันทุกประการ ก็จะได้ค่า MD5 เหมือนกัน แต่หากว่า ค่า MD5 ไม่ตรงกัน นั้นแสดงว่าต้องมีไฟล์ใดๆไฟล์หนึ่งที่ไม่สมบูรณ์ ซึ่งการตรวจสอบ MD5 สามารถทำได้ ด้วยการใช้โปรแกรมช่วย เช่น WinMD5Sum
2.นำไปใช้ในการเก็บข้อมูลที่ไม่ต้องการเปิดเผย เช่น เก็บรหัสผ่านไว้ในฐานข้อมูล
การแปลงค่า MD5 ทำได้โดย วิธีการที่เรียกว่า Brute-Force (หาค่าตั้งแต่ a-z และนำไปเปรียบเทียบ จากนั้นก็เป็น aa-zz และต่อไปเรื่อยๆ) นอกเหนือไปจากนี้ยังมีวิธีการที่เรียกว่า Hash Collision (การชนกันของ Hash)
นอกจากการเข้ารหัสแบบ MD5 แล้วยังใีการเข้ารหัสแบบอื่น เช่น Encryption และ bytecode เป็นต้น
อ้างอิง :: http://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/2067-md5-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html
ปกติที่ผมทำฟังก์ชั่น :: กรณีลืมรหัสผ่าน
รหัสผ่านของผู้ใช้ทุกท่าน ผมจะเข้ารหัสด้วย MD5 ครับ เนื่องจากการเข้ารหัสแบบ MD5 เป็น function ที่มาพร้อมกับ php แล้วทำให้ง่ายดายแก่การใช้งาน
ไม่ว่าจะผู้ใช้จะกรอกรหัสผ่านมากี่ตัว ก็จะถูก Encode เป็น 32 ตัว ครับ และไม่สามารถ Decode ได้ (One-way)
เมื่อไหร่ที่ผู้ใช้ลืมรหัสผ่าน :: ผมจะให้ผู้ใช้กรอก username and email เพื่อส่งเมล์ให้ผู้ใช้ เปลี่ยนแปลงรหัสผ่านใหม่ หรือ Re-Password ใหม่ไปเลย