Miklix

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

ที่ตีพิมพ์: 17 กุมภาพันธ์ 2025 เวลา 21 นาฬิกา 47 นาที 27 วินาที UTC

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

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

Fowler-Noll-Vo FNV1a-64 Hash Code Calculator

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

FNV-1a เป็นเวอร์ชันที่ปรับปรุงจาก FNV-1 รุ่นเดิมซึ่งมีฟังก์ชั่นด้านความปลอดภัยที่ดีกว่า

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


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

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

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



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



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

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

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

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

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

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

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

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

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

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

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

ขั้นตอนที่ 4: เพิ่ม Dash of Magic (การดำเนินการ XOR)

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

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

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

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

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

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

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

มิคเคล บัง คริสเตนเซ่น

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

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