Miklix

Fowler-Noll-Vo FNV1-32 hash kód kalkulátor

Megjelent: 2025. február 18. 0:15:41 UTC

Kivonatkód-kalkulátor, amely a Fowler-Noll-Vo 1 32 bites (FNV1-32) 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:

Fowler-Noll-Vo FNV1-32 Hash Code Calculator

Az FNV-1 32 bites hash-függvény a Fowler–Noll–Vo (FNV) hash-függvénycsalád része, amelyet gyors kivonatolásra terveztek, miközben megőrzik a hash értékek jó eloszlását. Általában olyan alkalmazásokban használják, mint a hash táblák, ellenőrző összegek és adatkeresések. 32 bites (4 bájtos) hash kódot állít elő, amelyet gyakran 8 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 Fowler-Noll-Vo FNV-1 32 bites 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 helyes, ijesztő matematikai magyarázatot részesíti előnyben, biztosan megtalálja máshol ;-)

Először is gondoljunk az FNV-1 algoritmusra, mint egy különleges turmix elkészítésének receptjére. Minden hozzáadott összetevő (például gyümölcs, tej vagy méz) egy adatrészletet képvisel – például betűket, számokat vagy akár egy teljes fájlt.

Most az a cél, hogy ezeket az összetevőket egy nagyon specifikus módon keverjük össze, hogy a recept legapróbb változtatása is (például egy plusz áfonya hozzáadása) teljesen mássá tegye a turmix ízét. Így működnek a hash függvények – egyedi "ízt" (vagy hash értéket) hoznak létre minden egyedi összetevőkészlethez (vagy bemeneti adathoz).

Az FNV-1 algoritmus többlépcsős folyamat:

1. lépés: Kezdje az alappal (eltolási alap)

Gondoljon erre úgy, mintha egy speciális turmixalapot töltene a turmixgépébe. Ez az alap mindig ugyanaz, függetlenül attól, hogy milyen összetevőket adsz hozzá. Az FNV-1-ben ezt "eltolási alapnak" nevezik – ez csak egy díszes kezdőszám.

2. lépés: Adja hozzá egyenként az összetevőket (adatok feldolgozása)

Most kezdje el egyenként hozzáadni a hozzávalókat – mondjuk egy epret, majd egy banánt, majd egy kis mézet. Ezek mindegyike egy adatbájtot jelent.

3. lépés: Keverés titkos szorzóval (az FNV Prime)

Az egyes összetevők hozzáadása után megnyomja a turmix gombot, de itt van a csavar: a turmixgép mindent megszoroz egy titkos "varázsszámmal", amelyet FNV prímnek neveznek. Ez segít igazán jól összekeverni a dolgokat.

4. lépés: Adjon hozzá egy Dash of Magic-et (XOR művelet)

Mielőtt hozzáadná a következő hozzávalót, szórjon bele egy kis varázsport (ez az XOR művelet). Ez olyan, mintha váratlan módon megváltoztatná az ízt, biztosítva, hogy még a kis változtatások is nagy változást hoznak.

5. lépés: Ismételje meg, amíg kész

Addig turmixolsz és szórsz varázslatot minden új hozzávaló után, amíg mindent fel nem dolgoztál.

6. lépés: utolsó turmix (hash érték)

Ha kész, kiöntöd a turmixot. A végső íz (a hash érték) az összetevők pontos kombinációjára jellemző. Ha hozzáadtál volna még egy áfonyát is, teljesen más íze lenne.

Az itt bemutatott verzió az eredeti FNV-1 32 bites verzió. Egy továbbfejlesztett FNV-1a 32 bites verzió is elérhető: Fowler-Noll-Vo FNV1a-32 hash kód kalkulátor

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.