Skip to main content

เครื่องคิดเลขแฮชคืออะไร?

เครื่องคิดเลขแฮชสามารถมีหลายสิ่ง แต่ในความหมายที่กว้างมากหมายถึงโปรแกรมหรือฟังก์ชั่นที่ยอมรับอินพุตบางประเภทจากนั้นเรียกใช้อินพุตนั้นผ่านอัลกอริทึมเพื่อสร้างค่าเอาต์พุตเช่นจำนวนมากหรือบล็อกของสัญลักษณ์คำที่ใช้บ่อยในการส่งข้อมูลเพื่ออ้างถึงโปรแกรมที่สร้างประเภทของคีย์ด้วยอัลกอริทึมเพื่อให้ทุกคนที่ได้รับข้อมูลที่ส่งสามารถใช้อัลกอริทึมเดียวกันเพื่อรับคีย์เดียวกันเพื่อดูว่าข้อมูลมาถึงไม่สมบูรณ์และไม่ได้แก้ไขในการเขียนโปรแกรมคอมพิวเตอร์คำว่าเครื่องคิดเลขแฮชสามารถใช้เพื่อระบุฟังก์ชั่นแฮชที่เปลี่ยนข้อมูลบางประเภทให้เป็นคีย์แฮชซึ่งจะถูกประมวลผลโดยอัลกอริทึมอื่นเพื่อสร้างดัชนีเป็นอาร์เรย์ที่สามารถเก็บข้อมูลได้แม้ว่าแนวคิดทั้งสองของเครื่องคิดเลขจะคล้ายกัน แต่ผลลัพธ์ก็แตกต่างกันมากและมักจะไม่สามารถใช้แทนกันได้หนึ่งในคุณสมบัติทั่วไปของเครื่องคิดเลขแฮชโดยไม่คำนึงถึงการใช้งานคือค่าแฮชที่สร้างขึ้นจะเป็นเหมือนชิ้นส่วนของข้อมูลที่กำหนดโดยไม่คำนึงถึงตำแหน่งหรือเวลาที่โปรแกรมทำงาน

ที่แกนของมันเป็นเพียงโปรแกรมหรือฟังก์ชั่นที่สร้างแฮชจากข้อมูลบางอย่างแฮชเป็นเพียงคำสำหรับค่าและสามารถเป็นอะไรก็ได้ตั้งแต่ตัวเลขไปจนถึงสตริงของอักขระตัวอักษรและตัวเลขหลายร้อยตัวขึ้นอยู่กับวิธีการใช้งานข้อมูลที่เพิ่มลงในเครื่องคิดเลขแฮชเพื่อสร้างแฮชก็เกือบจะเป็นอะไรก็ได้เมื่อใช้สำหรับการตรวจสอบข้อผิดพลาดในการส่งข้อมูลแหล่งที่มาสำหรับค่าแฮชมักจะเป็นเอกสารหรือไฟล์ข้อมูลที่สมบูรณ์เช่นอีเมลหรือไฟล์รูปภาพในการเขียนโปรแกรมเนื่องจากค่าแฮชถูกใช้เพื่อกำหนดตำแหน่งที่บันทึกข้อมูลจะถูกเก็บไว้ในตารางแฮชค่าอินพุตมักจะเป็นส่วนหนึ่งของบันทึกข้อมูลที่ไม่ซ้ำกันเช่นนามสกุลของบุคคลหมายเลขโทรศัพท์หรือหมายเลขบัญชี

ในกรณีของการส่งข้อมูลเครื่องคิดเลขแฮชใช้อัลกอริทึมทางคณิตศาสตร์ที่แตกต่างกันหนึ่งร้อยรายการเพื่อสร้างค่าแฮชที่ไม่ซ้ำกันสำหรับข้อมูลที่ส่งนี่อาจเป็นสิ่งที่ง่ายพอ ๆ กับการเพิ่มค่าทั้งหมดของไบต์ทั้งหมดในไฟล์ซึ่งในกรณีนี้ค่าแฮชคือผลรวมนอกจากนี้ยังมีความซับซ้อนมากขึ้นซึ่งเกี่ยวข้องกับการนับบล็อกบิตหรือการประมวลผลลำดับตัวเลขที่แตกต่างกันซ้ำซ้อนอย่างไรก็ตามหนึ่งในแง่มุมที่สำคัญที่สุดของอัลกอริทึมแฮชใด ๆ ก็คือค่าแฮชที่ได้จะต้องเหมือนกันเสมอหากใช้ข้อมูลเดียวกันเป็นอินพุตแนวคิดนี้หมายความว่าหากไฟล์ถูกส่งด้วยค่าแฮชที่คำนวณได้เองตัวรับข้อมูลสามารถใช้เครื่องคิดเลขแฮชที่มีอัลกอริทึมเดียวกันเพื่อตรวจสอบว่าค่าแฮชสำหรับการจับคู่ข้อมูลตรวจสอบว่าข้อมูลนั้นได้รับและไม่มีข้อผิดพลาดหรือการเปลี่ยนแปลง

ในการเขียนโปรแกรมคำว่าเครื่องคิดเลขแฮชมักใช้เพื่ออธิบายฟังก์ชั่นที่แปลงชิ้นส่วนของข้อมูลเป็นค่าแฮชซึ่งแตกต่างจากการส่งข้อมูลจำนวนที่สร้างโดยเครื่องคิดเลขในอินสแตนซ์นี้ไม่จำเป็นต้องใช้สำหรับการตรวจสอบ แต่เพื่อคำนวณดัชนีลงในตารางแฮชซึ่งข้อมูลจะถูกเก็บไว้ค่าแฮชตัวกลางถูกคำนวณเพื่อให้มีการบันทึกข้อมูลจำนวนมากขึ้นในตารางแฮชขนาดเล็กกว่าโดยมีบางบันทึกที่สร้างค่าเดียวกันภายใต้สถานการณ์บางอย่างทั้งอัลกอริทึมที่ใช้ในการคำนวณค่าแฮชและข้อมูลที่ใช้เป็นอินพุตนั้นค่อนข้างเป็นธรรมสำหรับตารางแฮชและโดยปกติแล้วแอปพลิเคชันเฉพาะ