Kalkulačka hash kódu Fowler-Noll-Vo FNV1-32
Publikované: 18. februára 2025 o 0:16:03 UTC
Posledná aktualizácia: 12. januára 2026 o 13:29:21 UTC
Fowler-Noll-Vo FNV1-32 Hash Code Calculator
32-bitová hašovacia funkcia FNV-1 je súčasťou rodiny hašovacích funkcií Fowler-Noll-Vo (FNV), ktoré sú určené na rýchle hašovanie pri zachovaní dobrého rozloženia hašovacích hodnôt. Bežne sa používa v aplikáciách, ako sú hašovacie tabuľky, kontrolné súčty a vyhľadávanie údajov. Vytvára 32-bitový (4-bajtový) hašovací kód, často reprezentovaný ako 8-miestne hexadecimálne číslo.
Úplné odhalenie: konkrétnu implementáciu hashovacej funkcie použitej na tejto stránke som nenapísal. Ide o štandardnú funkciu, ktorá je súčasťou programovacieho jazyka PHP. Vytvoril som len webové rozhranie, aby som ju tu pre pohodlie sprístupnil verejnosti.
O 32-bitovom hašovacom algoritme Fowler-Noll-Vo FNV-1
Nie som matematik, ale pokúsim sa vysvetliť túto hašovaciu funkciu pomocou analógie, ktorej rozumejú moji kolegovia nematematici. Ak uprednostňujete vedecky správne, strašidelné matematické vysvetlenie, som si istý, že ho nájdete inde ;-)
Najprv si predstavme algoritmus FNV-1 ako recept na prípravu špeciálneho smoothie. Každá pridaná prísada (ako ovocie, mlieko alebo med) predstavuje kus údajov – napríklad písmená, čísla alebo dokonca celý súbor.
Cieľom je teraz zmiešať tieto ingrediencie veľmi špecifickým spôsobom tak, aby aj najmenšia zmena v recepte (napríklad pridanie jednej čučoriedky navyše) spôsobila, že smoothie bude mať úplne inú chuť. Takto fungujú hašovacie funkcie – vytvárajú jedinečnú „príchuť“ (alebo hašovaciu hodnotu) pre každú jedinečnú sadu ingrediencií (alebo vstupných údajov).
Algoritmus FNV-1 to robí viackrokovým procesom:
Krok 1: Začnite so základom (odsadený základ)
Predstavte si to ako naliatie špeciálneho základu na smoothie do mixéra. Tento základ je vždy rovnaký, bez ohľadu na to, aké ingrediencie pridáte. V FNV-1 sa to nazýva „offsetový základ“ – len ozdobné východiskové číslo.
Krok 2: Pridávanie ingrediencií jednu po druhej (spracovanie údajov)
Teraz začnete pridávať ingrediencie, jednu po druhej – povedzme jahodu, potom banán a nakoniec trochu medu. Každá z nich predstavuje jeden bajt dát.
Krok 3: Zmiešajte s tajným multiplikátorom (FNV Prime)
Po pridaní každej ingrediencie stlačíte tlačidlo mixovania, ale tu je háčik: mixér všetko vynásobí tajným „magickým číslom“ nazývaným prvočíslo FNV. To pomáha veci naozaj dobre premiešať.
Krok 4: Pridajte štipku mágie (operácia XOR)
Pred pridaním ďalšej ingrediencie posypete trochou magického prachu (toto je operácia XOR). Je to ako neočakávané prevrátenie chuti, vďaka čomu aj malé zmeny prinesú veľký rozdiel.
Krok 5: Opakujte, kým nie je hotovo
Po každej novej ingrediencii stále mixujete a pridávate kúzlo, kým všetko nespracujete.
Krok 6: Záverečné smoothie (Hash hodnota)
Keď ste hotoví, smoothie nalejete. Konečná chuť (hash hodnota) je jedinečná pre túto presnú kombináciu ingrediencií. Keby ste pridali čo i len jednu čučoriedku navyše, chutilo by to úplne inak.
Tu uvedená verzia je pôvodná 32-bitová verzia FNV-1. K dispozícii je aj vylepšená 32-bitová verzia FNV-1a: Odkaz
Ďalšie čítanie
Ak sa vám tento príspevok páčil, možno sa vám budú páčiť aj tieto návrhy:
