Kalkulačka hash kódu Fowler-Noll-Vo FNV1-64
Vydáno: 17. února 2025 v 21:34:25 UTC
Poslední aktualizace: 12. ledna 2026 v 13:26:32 UTC
Fowler-Noll-Vo FNV1-64 Hash Code Calculator
64bitová hašovací funkce FNV-1 je součástí rodiny hašovacích funkcí Fowler-Noll-Vo (FNV), které jsou navrženy pro rychlé hašování při zachování dobrého rozložení hašovacích hodnot. Běžně se používá v aplikacích, jako jsou hašovací tabulky, kontrolní součty a vyhledávání dat. Vytváří 64bitový (8bajtový) hašovací kód, často reprezentovaný jako 16místné hexadecimální číslo.
Plné odhalení: konkrétní implementaci hashovací funkce použité na této stránce jsem nenapsal. Jedná se o standardní funkci, která je součástí programovacího jazyka PHP. Vytvořil jsem pouze webové rozhraní, abych ji zde pro pohodlí zpřístupnil veřejnosti.
O 64bitovém hašovacím algoritmu Fowler-Noll-Vo FNV-1
Nejsem matematik, ale pokusím se vysvětlit tuto hašovací funkci pomocí analogie, které rozumí i moji kolegové nematematici. Pokud dáváte přednost vědecky správnému a děsivě matematickému vysvětlení, jsem si jistý, že ho najdete jinde ;-)
Nejprve si algoritmus FNV-1 představme jako recept na speciální smoothie. Každá přidaná ingredience (například ovoce, mléko nebo med) představuje určitý kus dat – například písmena, čísla nebo dokonce celý soubor.
Cílem je nyní smíchat tyto ingredience velmi specifickým způsobem tak, aby i ta nejmenší změna v receptu (jako přidání jedné borůvky navíc) způsobila, že smoothie bude chutnat úplně jinak. Tak fungují hašovací funkce – vytvářejí jedinečnou „příchuť“ (nebo hašovací hodnotu) pro každou jedinečnou sadu ingrediencí (nebo vstupních dat).
Způsob, jakým to algoritmus FNV-1 dělá, je vícekrokový proces:
Krok 1: Začněte se základem (odsazený základ)
Představte si to jako nalití speciálního základu pro smoothie do mixéru. Tento základ je vždy stejný, bez ohledu na to, jaké ingredience přidáte. V FNV-1 se tomu říká „offsetový základ“ – jen ozdobné počáteční číslo.
Krok 2: Postupné přidávání ingrediencí (zpracování dat)
Nyní začnete přidávat ingredience, jednu po druhé – řekněme jahodu, pak banán a pak trochu medu. Každá z nich představuje jeden bajt dat.
Krok 3: Smíchejte s tajným multiplikátorem (FNV Prime)
Po přidání každé ingredience stisknete tlačítko mixování, ale tady je zvrat: mixér vše vynásobí tajným „magickým číslem“ zvaným prvočíslo FNV. To pomáhá věci opravdu dobře promíchat.
Krok 4: Přidejte špetku magie (operace XOR)
Než přidáte další ingredienci, posypete ji trochou magického prachu (toto je operace XOR). Je to jako obracet chuť nečekanými způsoby a zajistit, aby i malé změny měly velký dopad.
Krok 5: Opakujte, dokud nebudete hotovi
Po každé nové ingredienci mixujete a přidáváte magii, dokud nezpracujete všechno.
Krok 6: Závěrečné smoothie (Hash hodnota)
Až budete hotovi, smoothie nalijete. Konečná chuť (hash hodnota) je jedinečná pro danou přesnou kombinaci ingrediencí. Kdybyste přidali byť jen jednu borůvku navíc, chutnalo by to úplně jinak.
Zde uvedená verze je původní 64bitová verze FNV-1. K dispozici je také vylepšená 64bitová verze FNV-1a: Odkaz
Další čtení
Pokud se vám tento příspěvek líbil, mohly by se vám líbit i tyto návrhy:
