Miklix

MurmurHash3C hash kód kalkulátor

Megjelent: 2025. február 18. 0:34:00 UTC

Kivonatkód-kalkulátor, amely a MurmurHash3C hash-függvényt használja a hash-kód kiszámításához szövegbevitel vagy fájlfeltöltés alapján.

Ezt az oldalt angolból gépi fordítással készítettük, hogy minél több ember számára elérhető legyen. Sajnos a gépi fordítás még nem tökéletes technológia, ezért előfordulhatnak hibák. Ha szeretné, itt megtekintheti az eredeti angol nyelvű változatot:

MurmurHash3C Hash Code Calculator

A MurmurHash3 egy nem kriptográfiai hash függvény, amelyet Austin Appleby tervezett 2008-ban. Gyorsasága, egyszerűsége és jó terjesztési tulajdonságai miatt széles körben használják általános célú kivonatolásra. A MurmurHash függvények különösen hatékonyak a hash-alapú adatstruktúrákban, például a hash-táblákban, a bloomszűrőkben és az adatduplikációs rendszerekben.

Az ezen az oldalon bemutatott változat a 3C változat, amely 32 bites rendszerekre van optimalizálva, ugyanúgy, mint a 3A változat. A 3A változattól eltérően azonban 128 bites (16 bájtos) hash kódokat állít elő, amelyeket általában 32 jegyű hexadecimális számként ábrázolnak.

Teljes nyilvánosságra hozatal: nem én írtam az ezen az oldalon használt hash függvény konkrét implementációját. Ez egy szabványos függvény, amely a PHP programozási nyelvben szerepel. Csak a webes felületet készítettem el, hogy a kényelem érdekében itt nyilvánosan elérhetővé tegyem.


Új Hash kód kiszámítása

Az ezen az űrlapon keresztül beküldött adatok vagy feltöltött fájlok csak addig maradnak a szerveren, amíg a kért hash-kód generálásához szükséges. Az adatokat azonnal töröljük, mielőtt az eredményt visszaküldjük a böngészőnek.

Bemeneti adatok:



A beküldött szöveg UTF-8 kódolású. Mivel a hash függvények bináris adatokkal dolgoznak, az eredmény más lesz, mintha a szöveg más kódolású lenne. Ha egy adott kódolású szövegből kell hash-értéket kiszámítania, akkor inkább töltsön fel egy fájlt.



A MurmurHash3C hash algoritmusról

Nem vagyok matematikus, de megpróbálom elmagyarázni ezt a hash függvényt egy olyan analógia segítségével, amelyet nem matematikus társai is megértenek. Ha a tudományosan korrekt, teljes matematikai magyarázatot részesíti előnyben, biztos vagyok benne, hogy ezt máshol is megtalálja ;-)

Most képzeld el, hogy van egy nagy doboz LEGO kockád. Minden alkalommal, amikor meghatározott módon rendezi el őket, készít egy képet. Nem számít, milyen nagy vagy színes az elrendezés, a fényképezőgép mindig kicsi, fix méretű fotót ad. Ez a fotó a LEGO-alkotásodat ábrázolja, de kompakt formában.

A MurmurHash3 hasonlót csinál az adatokkal. Bármilyen adatot (szöveget, számokat, fájlokat) vesz fel, és kicsi, rögzített "ujjlenyomat" vagy hash értékre szűkíti le. Ez az ujjlenyomat segít a számítógépeknek az adatok gyors azonosításában, rendezésében és összehasonlításában anélkül, hogy az egészet át kellene nézni.

Egy másik hasonlat olyan lenne, mint egy sütemény sütése, és a MurmurHash3 a recept, amellyel a tortát kis cupcake-vé (a hash) lehet alakítani. Ez három lépésből állna:

1. lépés: Vágja darabokra (az adatok felosztása)

  • Először is, a MurmurHash3 egyenlő darabokra vágja az adatokat, például a tortát egyenletes négyzetekre vágja.

2. lépés: Keverjük össze őrülten (a darabok összekeverése)

  • Minden darab egy vad keverési folyamaton megy keresztül:
    • Lapozás: Mint egy palacsintát, átrendezi a darabokat.
    • Keverés: Véletlenszerű összetevőket (matematikai műveleteket) ad hozzá a dolgok összekeveréséhez.
    • Összehúzás: Összenyomja az adatokat, hogy megbizonyosodjon arról, hogy egyetlen eredeti darab sem tűnik ki.

3. lépés: Végső ízteszt (véglegesítés)

  • Az összes darab összekeverése után a MurmurHash3 még egy utolsó keverést ad annak biztosítására, hogy az eredeti adatok legapróbb változása is teljesen megváltoztatja az ízt (a hash-t).

Oszd meg a Bluesky-nOszd meg a FacebookonOszd meg a LinkedIn-enOszd meg a Tumblr-enOszd meg X-enOszd meg a LinkedIn-enPin a Pinteresten

Mikkel Bang Christensen

A szerzőről

Mikkel Bang Christensen
Mikkel a miklix.com létrehozója és tulajdonosa. Több mint 20 éves tapasztalattal rendelkezik, mint hivatásos számítógépes programozó/szoftverfejlesztő, és jelenleg teljes munkaidőben dolgozik egy nagy európai informatikai vállalatnál. Amikor nem blogol, szabadidejét érdeklődési körének, hobbijainak és tevékenységeinek széles skálájával tölti, ami bizonyos mértékig tükröződhet a weboldalon tárgyalt témák sokféleségében.