Fowler-Noll-Vo FNV1-32 hash kód kalkulátor
Megjelent: 2025. február 18. 0:15:41 UTC
Utolsó frissítés: 2026. január 12. 13:29:13 UTC
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 hashelésre terveztek, miközben fenntartják a hash értékek jó eloszlását. Gyakran használják olyan alkalmazásokban, mint a hash táblák, ellenőrzőösszegek és adatkeresések. 32 bites (4 bájtos) hash kódot hoz létre, 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.
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ógiával, amit a nem matematikus kollégáim is megértenek. Ha egy tudományosan korrekt, ijesztő matematikai magyarázatot szeretnél, biztos vagyok benne, hogy máshol is találsz ;-)
Először is, képzeljük el az FNV-1 algoritmust úgy, mint egy különleges turmix receptjét. Minden hozzáadott összetevő (például gyümölcsök, tej vagy méz) egy adatot jelöl – például betűket, számokat vagy akár egy egész fájlt.
A cél az, hogy ezeket az összetevőket egy nagyon specifikus módon keverjük össze, hogy még a recept legkisebb változtatása (például egy extra áfonya hozzáadása) is teljesen más ízűvé tegye a turmixot. Így működnek a hash függvények - minden egyedi összetevőkészlethez (vagy bemeneti adathoz) egyedi "ízt" (vagy hash értéket) hoznak létre.
Az FNV-1 algoritmus ezt egy többlépéses folyamaton keresztül valósítja meg:
1. lépés: Kezdje egy alappal (eltolásos alap)
Képzeld el ezt úgy, mintha egy speciális smoothie alapot öntenél a turmixgépedbe. Ez az alap mindig ugyanaz, függetlenül attól, hogy milyen hozzávalókat adsz hozzá. Az FNV-1-ben ezt "offszet alapnak" nevezik - csak egy divatos kezdőszám.
2. lépés: Hozzávalók hozzáadása egyenként (adatfeldolgozás)
Most elkezded hozzáadni a hozzávalókat, egyenként - mondjuk egy epret, majd egy banánt, végül egy kis mézet. Ezek mindegyike egy bájt adatot jelent.
3. lépés: Keverés titkos szorzóval (az FNV Prime)
Miután hozzáadtad az egyes hozzávalókat, megnyomod a turmixolás gombot, de itt a csavar: a turmixgép mindent megszoroz egy titkos "mágikus számmal", amit FNV prímnek hívnak. Ez segít abban, hogy az összetevők igazán jól összekeveredjenek.
4. lépés: Adjon hozzá egy csipetnyi varázslatot (XOR művelet)
Mielőtt hozzáadnád a következő hozzávalót, megszórsz egy kis varázspálcával (ez az XOR művelet). Olyan, mintha váratlan módon felcserélnéd az ízeket, biztosítva, hogy még a kis változtatások is nagy különbséget jelentsenek.
5. lépés: Ismételje meg, amíg kész
Addig turmixolod és szórod a varázslatot minden új hozzávaló után, amíg mindent fel nem dolgozol.
6. lépés: Végső turmix (Hash érték)
Amikor kész vagy, kiöntöd a turmixot. A végső íz (a hash érték) egyedi az adott összetevők kombinációjától. Ha akár csak egy plusz áfonyát is hozzáadtál volna, teljesen más íze lenne.
Az itt bemutatott verzió az eredeti FNV-1 32 bites verzió. Létezik egy továbbfejlesztett 32 bites FNV-1a verzió is: Link
További olvasmányok
Ha tetszett ez a bejegyzés, akkor ezek a javaslatok is érdekelhetik:
