Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การทำงานของ Hashing คืออย่างไร?

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 เดียวกัน