เครื่องคำนวณแฮชโค้ด Fowler-Noll-Vo FNV1-32
ที่ตีพิมพ์: 18 กุมภาพันธ์ 2025 เวลา 0 นาฬิกา 16 นาที 21 วินาที UTC
เครื่องคำนวณรหัสแฮชที่ใช้ฟังก์ชันแฮช Fowler-Noll-Vo 1 32 บิต (FNV1-32) เพื่อคำนวณรหัสแฮชโดยอิงจากการป้อนข้อความหรือการอัปโหลดไฟล์Fowler-Noll-Vo FNV1-32 Hash Code Calculator
ฟังก์ชันแฮช FNV-1 32 บิตเป็นส่วนหนึ่งของฟังก์ชันแฮชตระกูล Fowler–Noll–Vo (FNV) ซึ่งออกแบบมาเพื่อการแฮชที่รวดเร็วในขณะที่รักษาการกระจายค่าแฮชที่ดี ฟังก์ชันนี้มักใช้ในแอปพลิเคชัน เช่น ตารางแฮช ผลรวมตรวจสอบ และการค้นหาข้อมูล ฟังก์ชันนี้สร้างรหัสแฮช 32 บิต (4 ไบต์) ซึ่งมักแสดงเป็นเลขฐานสิบหก 8 หลัก
การเปิดเผยข้อมูลทั้งหมด: ฉันไม่ได้เขียนรายละเอียดการใช้งานฟังก์ชันแฮชที่ใช้ในหน้านี้โดยเฉพาะ ฟังก์ชันนี้เป็นฟังก์ชันมาตรฐานที่รวมอยู่ในภาษาการเขียนโปรแกรม PHP ฉันสร้างอินเทอร์เฟซเว็บเพื่อให้เผยแพร่ต่อสาธารณะเพื่อความสะดวกเท่านั้น
เกี่ยวกับอัลกอริธึมแฮช 32 บิตของ Fowler-Noll-Vo FNV-1
ฉันไม่ใช่นักคณิตศาสตร์ แต่ฉันจะพยายามอธิบายฟังก์ชันแฮชนี้โดยใช้การเปรียบเทียบที่เพื่อนที่ไม่ใช่นักคณิตศาสตร์สามารถเข้าใจได้ หากคุณต้องการคำอธิบายที่ถูกต้องทางวิทยาศาสตร์และน่ากลัวทางคณิตศาสตร์ ฉันแน่ใจว่าคุณจะหาได้จากที่อื่น ;-)
ก่อนอื่น ลองนึกถึงอัลกอริทึม FNV-1 เหมือนกับสูตรการทำสมูทตี้สูตรพิเศษ ส่วนผสมแต่ละอย่างที่คุณใส่ลงไป (เช่น ผลไม้ นม หรือน้ำผึ้ง) จะแสดงถึงข้อมูลชิ้นหนึ่ง เช่น ตัวอักษร ตัวเลข หรือแม้แต่ไฟล์ทั้งหมด
เป้าหมายตอนนี้คือการผสมส่วนผสมเหล่านี้ในลักษณะเฉพาะเจาะจงเพื่อให้แม้แต่การเปลี่ยนแปลงเล็กน้อยในสูตร (เช่น การเพิ่มบลูเบอร์รี่อีกหนึ่งลูก) จะทำให้สมูทตี้มีรสชาติที่แตกต่างไปอย่างสิ้นเชิง นั่นคือวิธีการทำงานของฟังก์ชันแฮช ซึ่งจะสร้าง "รสชาติ" (หรือค่าแฮช) ที่ไม่ซ้ำใครสำหรับส่วนผสมแต่ละชุด (หรือข้อมูลอินพุต) ที่ไม่ซ้ำใคร
วิธีการที่อัลกอริทึม FNV-1 ทำคือกระบวนการหลายขั้นตอน:
ขั้นตอนที่ 1: เริ่มต้นด้วยฐาน (ฐานออฟเซ็ต)
ลองคิดดูว่าการเทส่วนผสมพื้นฐานสำหรับสมูทตี้ลงในเครื่องปั่นนั้นเหมือนกับการเทส่วนผสมพื้นฐานพิเศษลงไป ส่วนผสมพื้นฐานนี้จะคงเดิมเสมอ ไม่ว่าคุณจะใส่ส่วนผสมอะไรลงไปก็ตาม ใน FNV-1 เรียกส่วนผสมพื้นฐานนี้ว่า "ฐานออฟเซ็ต" ซึ่งเป็นเพียงตัวเลขเริ่มต้นที่แปลกใหม่
ขั้นตอนที่ 2: เพิ่มส่วนผสมทีละอย่าง (การประมวลผลข้อมูล)
ตอนนี้คุณเริ่มใส่ส่วนผสมทีละอย่าง เช่น สตรอว์เบอร์รี่ กล้วย และน้ำผึ้ง ส่วนผสมแต่ละอย่างจะแทนข้อมูล 1 ไบต์
ขั้นตอนที่ 3: ผสมผสานกับตัวคูณลับ (FNV Prime)
หลังจากใส่ส่วนผสมแต่ละอย่างแล้ว ให้กดปุ่มผสม แต่สิ่งที่พิเศษคือ เครื่องปั่นจะคูณส่วนผสมทั้งหมดด้วย "ตัวเลขวิเศษ" ที่เรียกว่า FNV prime ซึ่งช่วยให้ผสมทุกอย่างเข้ากันได้ดี
ขั้นตอนที่ 4: เพิ่ม Dash of Magic (การดำเนินการ XOR)
ก่อนจะใส่ส่วนผสมต่อไป ให้โรยผงวิเศษลงไปเล็กน้อย (นี่คือการดำเนินการ XOR) ซึ่งก็เหมือนกับการพลิกรสชาติไปในทิศทางที่คาดไม่ถึง โดยต้องมั่นใจว่าการเปลี่ยนแปลงแม้เพียงเล็กน้อยก็สามารถสร้างความแตกต่างครั้งใหญ่ได้
ขั้นตอนที่ 5: ทำซ้ำจนกว่าจะเสร็จ
คุณต้องผสมและโรยเวทมนตร์หลังจากผสมส่วนผสมใหม่แต่ละอย่างจนกระทั่งคุณผสมทุกอย่างเสร็จ
ขั้นตอนที่ 6: สมูทตี้ขั้นสุดท้าย (ค่าแฮช)
เมื่อเสร็จแล้วให้เทสมูทตี้ลงไป รสชาติสุดท้าย (ค่าแฮช) จะแตกต่างกันไปตามส่วนผสมแต่ละชนิด หากคุณใส่บลูเบอร์รี่เพิ่มเข้าไปแม้แต่ลูกเดียว รสชาติก็จะแตกต่างไปอย่างสิ้นเชิง
เวอร์ชันที่นำเสนอที่นี่เป็นเวอร์ชัน FNV-1 32 บิตดั้งเดิม นอกจากนี้ยังมีเวอร์ชัน FNV-1a 32 บิตที่ได้รับการปรับปรุงแล้วด้วย: เครื่องคำนวณแฮชโค้ด Fowler-Noll-Vo FNV1a-32