Miklix

Kalkulačka hash kódu Fowler-Noll-Vo FNV1-64

Vydáno: 17. února 2025 v 21:34:25 UTC

Kalkulačka hash kódu, která používá funkci Fowler-Noll-Vo 1 64 bit (FNV1-64) hash k výpočtu hash kódu na základě zadání 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) 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áří 64bitový (8bajtový) hash 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 hashovacím algoritmu Fowler-Noll-Vo FNV-1

Nejsem matematik, ale pokusím se vysvětlit tuto hašovací funkci 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 uvedená verze je původní 64bitová verze FNV-1. K dispozici je také vylepšená 64bitová verze FNV-1a: Kalkulačka hashovacích kódů Fowler-Noll-Vo FNV1a-64

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

Mikkel Bang Christensen

O autorovi

Mikkel Bang 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.