ผลต่างระหว่างรุ่นของ "ฟังก์ชันแฮช"
ล โรบอต เพิ่ม: eu:Hashing |
ล โรบอต เพิ่ม: ro:Funcţie hash, simple:Hash function |
||
บรรทัด 46: | บรรทัด 46: | ||
[[pl:Funkcja skrótu]] |
[[pl:Funkcja skrótu]] |
||
[[pt:Hash]] |
[[pt:Hash]] |
||
[[ro:Funcţie hash]] |
|||
[[ru:Хеширование]] |
[[ru:Хеширование]] |
||
[[simple:Hash function]] |
|||
[[sk:Hašovacia funkcia]] |
[[sk:Hašovacia funkcia]] |
||
[[sl:Sekljalna funkcija]] |
[[sl:Sekljalna funkcija]] |
รุ่นแก้ไขเมื่อ 02:06, 17 กรกฎาคม 2551
ฟังก์ชันแฮช (hash function) คือวิธีการอย่างหนึ่งซึ่งทำให้ข้อมูลส่วนหนึ่งหรือทั้งหมด ให้กลายเป็นจำนวนเล็กๆ อันหนึ่งอย่างมีปฏิสัมพันธ์ ซึ่งจำนวนดังกล่าวเปรียบได้ว่าเป็น "ลายนิ้วมือ" ของข้อมูล ขั้นตอนวิธีของฟังก์ชันแฮชส่วนใหญ่จะเป็นการแบ่งย่อยข้อมูลและการผสมข้อมูลย่อยทั้งหมดเข้าด้วยกันเพื่อให้ได้ผลลัพธ์สุดท้าย ผลลัพธ์ดังกล่าวอาจเรียกว่า ผลบวกแฮช (hash sum) ค่าแฮช (hash value) รหัสแฮช (hash code) หรือเรียกว่า แฮช (hash) เฉยๆ ก็ได้ บ่อยครั้งที่การเอ่ยถึงแฮชจะหมายถึงฟังก์ชันแฮชโดยปริยาย ปกติแล้วฟังก์ชันแฮชจะทำงานผ่านดัชนีที่เก็บไว้ในตารางแฮชที่อยู่ในหน่วยความจำหรือแฟ้มข้อมูลชั่วคราว
คุณสมบัติของฟังก์ชันแฮช
- ควรมีความจำเพาะแต่ละข้อมูล ข้อมูลแต่ละตัวควรผ่านฟังก์ชันแฮชแล้วมีค่าไม่เท่ากัน เพื่อให้ข้อมูล
แต่ละตัว มีผลการแฮชเฉพาะตัว หรือเป็นลายนิ้วมือของข้อมูล โดยเฉพาะการใช้กับการตรวจสอบข้อมูล
- หาง่าย ใช้เวลาน้อย
- ควรกระจายในช่วงที่กำหนด เช่นถ้าต้องการแฮชได้เลขห้าหลัก ผลของการแฮชก็ควรจะกระจายกันตั้งแต่ 00000-99999 โดยเฉพาะการใช้กับตารางแฮช
- ควรจะไม่คงผลลัพธ์ของลำดับเดิม หรือแก้กลับได้ง่าย เช่น ถ้าคีย์เป็น 12345 ไม่ควรให้กลับเป็น
54321 เป็นผลแฮช เพราะจะทำกลับได้ง่ายโดยเฉพาะการแฮชสำหรับการเข้ารหัส
การประยุกต์ใช้ฟังก์ชันแฮช
- ใช้การเก็บข้อมูลในตารางแฮช ที่อยู่ในหน่วยความจำหรือแฟ้มข้อมูลชั่วคราว
- ใช้ในการตรวจสอบข้อมูลอย่างรวดเร็ว
- ใช้ในการเข้ารหัสข้อมูล
ฟังก์ชันแฮชเข้ารหัส
ฟังก์ชันแฮชเข้ารหัส (cryptographic hash function) คือฟังก์ชันแฮชที่ใช้เพื่อจุดประสงค์ในด้านความปลอดภัยของสารสนเทศ อาทิการยืนยันตนเพื่อเข้าสู่ระบบ (authentication) หรือการตรวจสอบความถูกต้องสมบูรณ์ของเนื้อหาข้อมูล อาทิ SHA-1, MD5 หรือ CRC32 เป็นต้น