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