เครื่องคำนวณรหัสแฮช MurmurHash3C
ที่ตีพิมพ์: 18 กุมภาพันธ์ 2025 เวลา 0 นาฬิกา 34 นาที 35 วินาที UTC
เครื่องคำนวณรหัสแฮชที่ใช้ฟังก์ชันแฮช MurmurHash3C เพื่อคำนวณรหัสแฮชโดยอิงจากการป้อนข้อความหรือการอัปโหลดไฟล์MurmurHash3C Hash Code Calculator
MurmurHash3 คือฟังก์ชันแฮชแบบไม่เข้ารหัสที่ออกแบบโดย Austin Appleby ในปี 2008 ฟังก์ชันนี้ใช้กันอย่างแพร่หลายสำหรับการแฮชทั่วไปเนื่องจากความเร็ว ความเรียบง่าย และคุณสมบัติการกระจายที่ดี ฟังก์ชัน MurmurHash มีประสิทธิภาพโดยเฉพาะอย่างยิ่งสำหรับโครงสร้างข้อมูลที่ใช้แฮช เช่น ตารางแฮช ตัวกรองบลูม และระบบการลบข้อมูลซ้ำซ้อน
ตัวแปรที่แสดงในหน้านี้คือตัวแปร 3C ซึ่งปรับให้เหมาะสมสำหรับระบบ 32 บิต เช่นเดียวกับตัวแปร 3A อย่างไรก็ตาม แตกต่างจากตัวแปร 3A ตรงที่ตัวแปรนี้สร้างรหัสแฮช 128 บิต (16 ไบต์) ซึ่งโดยทั่วไปแสดงเป็นเลขฐานสิบหก 32 หลัก
การเปิดเผยข้อมูลทั้งหมด: ฉันไม่ได้เขียนรายละเอียดการใช้งานฟังก์ชันแฮชที่ใช้ในหน้านี้โดยเฉพาะ ฟังก์ชันนี้เป็นฟังก์ชันมาตรฐานที่รวมอยู่ในภาษาการเขียนโปรแกรม PHP ฉันสร้างอินเทอร์เฟซเว็บเพื่อให้เผยแพร่ต่อสาธารณะเพื่อความสะดวกเท่านั้น
เกี่ยวกับอัลกอริธึมแฮช MurmurHash3C
ฉันไม่ใช่นักคณิตศาสตร์ แต่ฉันจะพยายามอธิบายฟังก์ชันแฮชนี้โดยใช้การเปรียบเทียบที่เพื่อนที่ไม่ใช่นักคณิตศาสตร์สามารถเข้าใจได้ หากคุณต้องการคำอธิบายทางคณิตศาสตร์ที่ถูกต้องตามหลักวิทยาศาสตร์ ฉันมั่นใจว่าคุณจะหาได้จากที่อื่น ;-)
ลองนึกภาพว่าคุณมีกล่องเลโก้ขนาดใหญ่ ทุกครั้งที่คุณจัดเรียงอิฐเลโก้ในลักษณะเฉพาะ คุณจะถ่ายรูปไว้ ไม่ว่าอิฐจะใหญ่หรือหลากสีแค่ไหน กล้องก็จะถ่ายภาพคุณด้วยภาพขนาดเล็กเสมอ ภาพนั้นแสดงถึงผลงานเลโก้ของคุณ แต่มีขนาดกระทัดรัด
MurmurHash3 ทำสิ่งที่คล้ายกันกับข้อมูล โดยนำข้อมูลทุกประเภท (ข้อความ ตัวเลข ไฟล์) มาย่อให้เหลือเพียง "ลายนิ้วมือ" หรือค่าแฮชที่คงที่และมีขนาดเล็ก ลายนิ้วมือนี้ช่วยให้คอมพิวเตอร์ระบุ เรียงลำดับ และเปรียบเทียบข้อมูลได้อย่างรวดเร็วโดยไม่จำเป็นต้องดูข้อมูลทั้งหมด
การเปรียบเทียบอีกอย่างหนึ่งก็เหมือนกับการอบเค้ก และ MurmurHash3 คือสูตรในการเปลี่ยนเค้กให้เป็นคัพเค้กขนาดเล็ก (แฮช) ซึ่งจะเป็นกระบวนการสามขั้นตอน:
ขั้นตอนที่ 1: แบ่งเป็นชิ้น ๆ (ทำลายข้อมูล)
- ประการแรก MurmurHash3 จะแบ่งข้อมูลของคุณออกเป็นส่วนเท่าๆ กัน เช่นเดียวกับการตัดเค้กให้เป็นสี่เหลี่ยมเท่าๆ กัน
ขั้นตอนที่ 2: ผสมอย่างบ้าคลั่ง (ผสมส่วนผสมต่างๆ)
- ชิ้นงานแต่ละชิ้นผ่านกระบวนการผสมผสานอันพิถีพิถัน:
- การพลิก: เหมือนกับการพลิกแพนเค้ก โดยจะจัดเรียงชิ้นส่วนใหม่
- การคน: เพิ่มส่วนผสมแบบสุ่ม (การดำเนินการทางคณิตศาสตร์) เพื่อทำให้สิ่งต่างๆ ผสมเข้ากัน
- การบีบ: กดข้อมูลเข้าด้วยกันเพื่อให้แน่ใจว่าไม่มีชิ้นส่วนต้นฉบับใดโดดเด่นออกมา
ขั้นตอนที่ 3: การทดสอบรสชาติขั้นสุดท้าย (การสรุปผล)
- หลังจากผสมชิ้นส่วนทั้งหมดแล้ว MurmurHash3 จะคนเป็นครั้งสุดท้ายเพื่อให้แน่ใจว่าการเปลี่ยนแปลงแม้เพียงเล็กน้อยในข้อมูลต้นฉบับก็จะเปลี่ยนรูปแบบ (แฮช) ไปโดยสิ้นเชิง