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