Kalkulačka hash kódu Fowler-Noll-Vo FNV1a-32
Vydáno: 18. února 2025 v 0:08:47 UTC
Kalkulačka hash kódu, která používá funkci Fowler-Noll-Vo 1a 32 bit (FNV1a-32) hash k výpočtu hash kódu na základě zadání textu nebo nahrání souboru.Fowler-Noll-Vo FNV1a-32 Hash Code Calculator
32bitová hašovací funkce FNV-1a je součástí rodiny hašovacích funkcí Fowler–Noll–Vo (FNV) navržených pro rychlé hašování při zachování dobré distribuce hašovacích hodnot. Běžně se používá v aplikacích, jako jsou hashovací tabulky, kontrolní součty a vyhledávání dat. Vytváří 32bitový (4bajtový) hash kód, často reprezentovaný jako 8místné hexadecimální číslo.
Varianta FNV-1a je vylepšená verze oproti původní funkci FNV-1 s lepším zabezpečením.
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 32bitovém hashovacím algoritmu Fowler-Noll-Vo FNV-1a
Nejsem matematik, ale pokusím se tuto hašovací funkci vysvětlit pomocí analogie, které moji kolegové nematematici rozumí. Pokud dáváte přednost vědecky správnému, děsivě-matematickému vysvětlení, jsem si jistý, že to najdete jinde ;-)
Nejprve si představme algoritmus FNV-1 jako recept na přípravu speciálního smoothie. Každá ingredience, kterou přidáte (jako ovoce, mléko nebo med), představuje část dat – jako písmena, čísla nebo dokonce celý soubor.
Nyní je cílem namíchat tyto ingredience velmi specifickým způsobem tak, aby i sebemenší změna v receptu (jako přidání jedné borůvky navíc) způsobila, že smoothie chutná úplně jinak. Tak fungují hashovací funkce – vytvářejí jedinečnou „příchuť“ (nebo hodnotu hash) 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ákladnou (základ posunu)
Představte si to jako nalít do mixéru speciální smoothie základ. Tento základ je vždy stejný, bez ohledu na to, jaké přísady přidáte. Ve FNV-1 se tomu říká „základ offsetu“ – jen luxusní startovní číslo.
Krok 2: Přidejte ingredience jednu po druhé (zpracování dat)
Nyní začnete přidávat své ingredience, jednu po druhé – řekněme jahodu, pak banán, pak trochu medu. Každý z nich představuje byte dat.
Krok 3: Smíchejte s tajným multiplikátorem (FNV Prime)
Po přidání každé ingredience stisknete tlačítko pro míchání, ale tady je zvrat: mixér vše vynásobí tajným „magickým číslem“ nazývaným FNV prvočíslo. To pomáhá věci opravdu dobře promíchat.
Krok 4: Přidejte Dash of Magic (operace XOR)
Před přidáním další ingredience posypete trochou kouzelného prachu (toto je operace XOR). Je to jako otočit chuť neočekávaným způsobem a zajistit, aby i malé změny udělaly velký rozdíl.
Krok 5: Opakujte, dokud nebude hotovo
Po každé nové ingredience stále mixujete a sypete magii, dokud vše nezpracujete.
Krok 6: Finální smoothie (hodnota hash)
Až budete hotovi, vylijete smoothie. Konečná chuť (hodnota hash) je jedinečná pro tuto přesnou kombinaci přísad. Kdybyste přidali byť jen jednu borůvku navíc, chutnalo by to úplně jinak.
Zde prezentovaná verze je vylepšená 32bitová verze FNV-1a. Pokud potřebujete původní verzi, mám na to i kalkulačku: Kalkulačka hash kódu Fowler-Noll-Vo FNV1-32