Fowler-Noll-Vo FNV1a-64 hash kód kalkulátor
Megjelent: 2025. február 17. 21:46:37 UTC
Kivonatkód-kalkulátor, amely a Fowler-Noll-Vo 1a 64 bites (FNV1a-64) hash függvényt használja a hash kód kiszámításához szövegbevitel vagy fájlfeltöltés alapján.Fowler-Noll-Vo FNV1a-64 Hash Code Calculator
Az FNV-1a 64 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. 64 bites (8 bájtos) hash kódot állít elő, amelyet gyakran 16 jegyű hexadecimális számként ábrázolnak.
Az FNV-1a változat az eredeti FNV-1 funkcióhoz képest jobb biztonsággal továbbfejlesztett változat.
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-1a 64 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 adatot 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épéses 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ó a továbbfejlesztett FNV-1a 64 bites verzió. Ha kell az eredeti verzió, arra is van egy kalkulátorom: Fowler-Noll-Vo FNV1-64 hash kód kalkulátor