เดี๋ยวนี้เวลาจะเก็บ password ของสมาชิก ก็มักจะ hash มันด้วย md5 ก่อน แล้วค่อยยัดลง database แม้แต่ผู้ดูแลระบบเองก็ไม่เห็นว่า password ของสมาชิกคืออะไร
การเข้ารหัสทางเดียวเช่น md5 ชื่อมันก็บอกว่าทางเดียวอยู่แล้ว นั่นหมายความว่ามันถอดกลับมาเป็น password จริงๆ ไม่ได้ เพราะฉะนั้นเวลาที่เราต้องการตรวจสอบว่าสมาชิกกรอก password ถูกหรือเปล่า เราก็จะเอาสิ่งที่เขากรอกมา hash ด้วย md5 แล้วก็เอาไปเทียบกับสิ่งที่อยู่ในฐานข้อมูลว่าตรงกันหรือเปล่า ถ้าตรงกันก็แสดงว่ามันคือ password เดียวกันกับที่ตอนสมัคร
Hash function คือ การนำเอาข้อมูลอิเล็กทรอนิกส์ต้นฉบับที่จะส่ง มาผ่านกรบวนการทางด้านคณิตศาสตร์ที่เรียกว่า Hash Function เพื่อให้ได้ข้อมูลที่สั้น ที่เรียกว่า Digest หรือ ข้อมูลย่อย ก่อนที่จะทำการเข้ารหัส เนื่องจากข้อมูลต้นฉบับมักจะมีความยาวมาก ซึ่งจะทำให้กระบวนการเข้ารหัสใช้ระยะเวลานาน
คูณสมบัติ
1. ควรมีความจำเพราะเจาะจงในแต่ละข้อมูล
2. หากมีการเปลี่ยนแปลงข้อมูลเล็กแล้วค่าที่ Hash ออกมาจะต้องมีความแตกต่างกันอย่างสิ้นเชิง
3. หาได้ง่ายและใช้เวลาน้อย ควรเป็นฟังก์ชันที่ไม่ซับซ้อน สามารถสร้างโดยฮาร์ดแวร์และซอฟต์แวร์ได้ง่าย
4. ไม่ควรเป็นฟังก์ชันที่ย้อนกลับได้ คือ เมื่อทราบผลลัพธ์แล้วไม่มีทางทราบข้อมูลเลย
5. ข้อมูลที่ได้ต้องมีการซ้ำกันน้อยหรือไม่มีเลย
การประยุกต์ใช้ฟังก์ชันแฮช
1. ใช้การเก็บข้อมูลในตารางแฮช ที่อยู่ในหน่วยความจำหรือแฟ้มข้อมูลชั่วคราว
2. ใช้ในการตรวจสอบข้อมูลอย่างรวดเร็ว
3. ใช้ในการเข้ารหัสข้อมูล