Miklix

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

Kalkulačka hash kódu, která používá hashovací funkci Fowler-Noll-Vo 1 64 bit (FNV1-64) k výpočtu hash kódu na základě zadaného textu nebo nahrání souboru.

Tato stránka byla strojově přeložena z angličtiny, aby byla přístupná co největšímu počtu lidí. Strojový překlad bohužel ještě není dokonalá technologie, takže může dojít k chybám. Pokud si přejete, můžete si prohlédnout původní anglickou verzi zde:

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.


Výpočet nového kódu Hash

Data odeslaná nebo soubory nahrané prostřednictvím tohoto formuláře budou na serveru uchovávány pouze po dobu potřebnou k vygenerování požadovaného hash kódu. Budou smazány bezprostředně předtím, než se výsledek vrátí do prohlížeče.

Vstupní data:



Odeslaný text je kódován v UTF-8. Vzhledem k tomu, že hashovací funkce pracují s binárními daty, bude výsledek jiný, než kdyby byl text v jiném kódování. Pokud potřebujete vypočítat hash textu v konkrétním kódování, měli byste místo toho nahrát soubor.



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:


Sdílet na BlueskySdílejte na FacebookuSdílet na LinkedInSdílet na TumblrSdílet na XSdílet na LinkedInPřipnout na Pinterest

Mikkel Christensen

O autorovi

Mikkel Christensen
Mikkel je tvůrcem a majitelem webu miklix.com. Má více než 20 let zkušeností jako profesionální programátor/vývojář softwaru a v současné době pracuje na plný úvazek pro velkou evropskou IT společnost. Pokud zrovna nepíše blog, věnuje svůj volný čas široké škále zájmů, koníčků a aktivit, což se může do jisté míry odrážet v rozmanitosti témat na tomto webu.