Hashing ทำงานอย่างไร?
Hashing คือกระบวนการแปลง Key ที่กำหนดให้เป็นรหัส (Code) ใช้ Hash Function แทนที่ข้อมูลด้วย Hash Code ใหม่ ที่สร้างขึ้น โดยเฉพาะการนำ String หรือ Input Key (ตัวแปรเก็บข้อมูล) มาผ่านอัลกอริทึม ได้ Hash Value ที่สั้นกว่าต้นฉบับมาก
คุณสมบัติสำคัญ
- One-way Function: ไม่สามารถย้อนกลับได้ รู้ Output ไม่ได้ข้อมูลต้นฉบับ แต่เปรียบเทียบได้ว่าไฟล์สองไฟล์เหมือนกันหรือไม่
- Data Structure: Hash Table จัดเก็บ Key-Value Pair เข้าถึงด้วย Index ค้นหาและจัดเก็บได้มีประสิทธิภาพ
ตัวอย่างการใช้งาน
- ค้นหาข้อมูลในรายการ 20,000 รายการ: ใช้ Hashed Key ค้นหาเร็วกว่าเปรียบเทียบทีละรายการ
- ตรวจสอบคำในพจนานุกรม 10,000 คำ: Hashing ทำได้มีประสิทธิภาพ
- ใช้ Modulo Operator ได้ Range ของ Key Values จัดเก็บใน Hash Table
อัลกอริทึมยอดนิยม
MD5, SHA-1, SHA-2, NTLM, LANMAN MD5 ใช้ 128 บิต Output ก่อนหน้านี้เป็นที่นิยมมาก
Collision
ความเสี่ยงที่ Input ต่างกันให้ Hash Value เหมือนกัน เรียกว่า Collision เกิดขึ้นเมื่อ Input ต่างกันสร้าง Hash เดียวกัน