Miklix

เครื่องคำนวณแฮชโค้ด Fowler-Noll-Vo FNV1a-32

ที่ตีพิมพ์: 18 กุมภาพันธ์ 2025 เวลา 0 นาฬิกา 10 นาที 08 วินาที UTC
ปรับปรุงล่าสุด : 12 มกราคม 2026 เวลา 13 นาฬิกา 28 นาที 31 วินาที UTC

เครื่องคำนวณรหัสแฮชที่ใช้ฟังก์ชันแฮช Fowler-Noll-Vo 1a 32 บิต (FNV1a-32) ในการคำนวณรหัสแฮชจากข้อความที่ป้อนหรือไฟล์ที่อัปโหลด

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

Fowler-Noll-Vo FNV1a-32 Hash Code Calculator

ฟังก์ชันแฮช FNV-1a แบบ 32 บิต เป็นส่วนหนึ่งของตระกูลฟังก์ชันแฮช Fowler–Noll–Vo (FNV) ซึ่งออกแบบมาเพื่อการแฮชที่รวดเร็วในขณะที่ยังคงรักษาการกระจายค่าแฮชที่ดี โดยทั่วไปจะใช้ในแอปพลิเคชันต่างๆ เช่น ตารางแฮช ผลรวมตรวจสอบ และการค้นหาข้อมูล ฟังก์ชันนี้สร้างรหัสแฮช 32 บิต (4 ไบต์) ซึ่งมักแสดงเป็นเลขฐานสิบหก 8 หลัก

FNV-1a เป็นรุ่นที่ได้รับการปรับปรุงจาก FNV-1 รุ่นเดิม โดยมีระบบรักษาความปลอดภัยที่ดีกว่า

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


คำนวณรหัสแฮชใหม่

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

ข้อมูลอินพุต:



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



เกี่ยวกับอัลกอริทึมแฮช 32 บิต Fowler-Noll-Vo FNV-1a

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

ก่อนอื่น ลองนึกถึงอัลกอริทึม FNV-1 เหมือนกับสูตรการทำสมูทตี้สูตรพิเศษ ส่วนผสมแต่ละอย่างที่คุณใส่ลงไป (เช่น ผลไม้ นม หรือน้ำผึ้ง) เปรียบเสมือนข้อมูลชิ้นหนึ่ง เช่น ตัวอักษร ตัวเลข หรือแม้แต่ไฟล์ทั้งหมด

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

วิธีการที่อัลกอริทึม FNV-1 ทำเช่นนี้เป็นกระบวนการหลายขั้นตอน:

ขั้นตอนที่ 1: เริ่มต้นด้วยฐาน (ฐานชดเชย)

ลองนึกภาพเหมือนกับการเทส่วนผสมพื้นฐานสำหรับทำสมูทตี้ลงในเครื่องปั่น ส่วนผสมพื้นฐานนี้จะคงที่เสมอ ไม่ว่าคุณจะใส่ส่วนผสมอะไรลงไปก็ตาม ใน FNV-1 เราเรียกสิ่งนี้ว่า "ฐานออฟเซ็ต" ซึ่งก็คือตัวเลขเริ่มต้นที่ดูหรูหรานั่นเอง

ขั้นตอนที่ 2: เพิ่มส่วนผสมทีละอย่าง (ประมวลผลข้อมูล)

ทีนี้เริ่มใส่ส่วนผสมทีละอย่าง เช่น สตรอว์เบอร์รี กล้วย และน้ำผึ้ง แต่ละอย่างแทนข้อมูลหนึ่งไบต์

ขั้นตอนที่ 3: ผสมผสานกับตัวคูณลับ (FNV Prime)

หลังจากใส่ส่วนผสมแต่ละอย่างแล้ว ให้กดปุ่มปั่น แต่เคล็ดลับอยู่ที่นี่: เครื่องปั่นจะคูณทุกอย่างด้วย "เลขมหัศจรรย์" ลับที่เรียกว่า FNV prime ซึ่งจะช่วยให้ส่วนผสมเข้ากันได้ดียิ่งขึ้น

ขั้นตอนที่ 4: เพิ่มความมหัศจรรย์เล็กน้อย (การดำเนินการ XOR)

ก่อนที่จะใส่ส่วนผสมต่อไป คุณต้องโรยผงวิเศษลงไปเล็กน้อย (นี่คือการดำเนินการ XOR) มันเหมือนกับการพลิกรสชาติในแบบที่ไม่คาดคิด ทำให้แม้แต่การเปลี่ยนแปลงเล็กน้อยก็สร้างความแตกต่างอย่างมากได้

ขั้นตอนที่ 5: ทำซ้ำจนกว่าจะเสร็จ

คุณค่อยๆ ผสมและโรยผงเวทมนตร์ลงไปหลังจากใส่ส่วนผสมใหม่แต่ละอย่าง จนกว่าจะผสมทุกอย่างเสร็จ

ขั้นตอนที่ 6: สมูทตี้ขั้นสุดท้าย (ค่าแฮช)

เมื่อทำเสร็จแล้วก็เทสมูทตี้ออกมา รสชาติสุดท้าย (ค่าแฮช) จะเป็นเอกลักษณ์เฉพาะตัวตามส่วนผสมที่ใช้ หากคุณใส่บลูเบอร์รี่เพิ่มแม้แต่ลูกเดียว รสชาติก็จะแตกต่างไปอย่างสิ้นเชิง

เวอร์ชันที่นำเสนอในที่นี้คือเวอร์ชัน FNV-1a 32 บิตที่ได้รับการปรับปรุงแล้ว หากคุณต้องการเวอร์ชันดั้งเดิม ฉันก็มีเครื่องคิดเลขสำหรับเวอร์ชันนั้นด้วยเช่นกัน: ลิงก์

อ่านเพิ่มเติม

หากคุณชอบโพสต์นี้ คุณอาจชอบคำแนะนำเหล่านี้ด้วย:


แชร์บนบลูสกายแชร์บนเฟสบุ๊คแชร์บน LinkedInแชร์บน Tumblrแชร์บน Xแชร์บน LinkedInปักหมุดบน Pinterest

มิคเคล คริสเตนเซ่น

เกี่ยวกับผู้เขียน

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