Miklix

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

Publikované: 17. februára 2025 o 21:35:13 UTC

Kalkulačka hash kódu, ktorá používa Fowler-Noll-Vo 1 64 bit (FNV1-64) hash funkciu na výpočet hash kódu na základe zadania textu alebo nahrávania súboru.

Táto stránka bola strojovo preložená z angličtiny, aby bola prístupná čo najväčšiemu počtu ľudí. Žiaľ, strojový preklad ešte nie je dokonalá technológia, takže sa môžu vyskytnúť chyby. Ak chcete, môžete si pozrieť pôvodnú anglickú verziu tu:

Fowler-Noll-Vo FNV1-64 Hash Code Calculator

64-bitová hašovacia funkcia FNV-1 je súčasťou rodiny hašovacích funkcií Fowler–Noll–Vo (FNV) navrhnutých na rýchle hašovanie pri zachovaní dobrej distribúcie 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 64 bitový (8 bajtový) hash kód, často reprezentovaný ako 16-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.


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

Údaje odoslané alebo súbory nahrané prostredníctvom tohto formulára sa na serveri uchovávajú len tak dlho, ako je potrebné na vygenerovanie požadovaného kódu hash. Vymažú sa bezprostredne pred vrátením výsledku do prehliadača.

Vstupné údaje:



Odoslaný text je kódovaný v UTF-8. Keďže hašovacie funkcie pracujú s binárnymi údajmi, výsledok bude iný, ako keby bol text v inom kódovaní. Ak potrebujete vypočítať hash textu v konkrétnom kódovaní, mali by ste namiesto toho nahrať súbor.



O 64-bitovom hash 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 dávate prednosť vedecky správnemu, desivo-matematickému vysvetleniu, som si istý, že ho nájdete aj inde ;-)

Najprv si predstavme algoritmus FNV-1 ako recept na prípravu špeciálneho smoothie. Každá zložka, ktorú pridáte (napríklad ovocie, mlieko alebo med), predstavuje časť údajov - napríklad písmená, čísla alebo dokonca celý súbor.

Teraz je cieľom 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 chutiť úplne inak. Takto fungujú hašovacie funkcie – vytvárajú jedinečnú „chuť“ (alebo hodnotu hash) pre každú jedinečnú sadu ingrediencií (alebo vstupných údajov).

Spôsob, akým to robí algoritmus FNV-1, je viackrokový proces:

Krok 1: Začnite so základňou (základ odsadenia)

Predstavte si to, ako keby ste do mixéra naliali špeciálny smoothie základ. Tento základ je vždy rovnaký, bez ohľadu na to, aké ingrediencie pridáte. Vo FNV-1 sa tomu hovorí „základ offsetu“ – len vymyslené štartovné číslo.

Krok 2: Pridajte prísady jednu po druhej (spracovanie údajov)

Teraz začnete pridávať ingrediencie, jednu po druhej – povedzme jahodu, potom banán, potom trochu medu. Každý z nich predstavuje bajt údajov.

Krok 3: Zmiešajte s tajným multiplikátorom (FNV Prime)

Po pridaní každej ingrediencie stlačíte tlačidlo mixovania, ale tu je zvrat: mixér všetko vynásobí tajným „magickým číslom“ nazývaným FNV prime. 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 zmeniť chuť nečakaným spôsobom a zabezpečiť, aby aj malé zmeny urobili veľký rozdiel.

Krok 5: Opakujte do dokončenia

Po každej novej ingrediencii stále miešate a sypete kúzlo, kým všetko nespracujete.

Krok 6: Finálne smoothie (hodnota hash)

Keď skončíte, vylejte smoothie. Konečná chuť (hodnota hash) je jedinečná pre túto presnú kombináciu ingrediencií. Ak by ste pridali čo i len jednu čučoriedku navyše, chutilo by to úplne inak.

Tu prezentovaná verzia je pôvodná 64-bitová verzia FNV-1. K dispozícii je aj vylepšená 64-bitová verzia FNV-1a: Kalkulačka hash kódu Fowler-Noll-Vo FNV1a-64

Zdieľať na BlueskyZdieľať na FacebookuZdieľať na LinkedInZdieľať na TumblrZdieľať na XZdieľať na LinkedInPripnúť na Pintereste

Mikkel Bang Christensen

O autorovi

Mikkel Bang Christensen
Mikkel je tvorcom a majiteľom miklix.com. Má viac ako 20 rokov skúseností ako profesionálny počítačový programátor/vývojár softvéru a v súčasnosti pracuje na plný úväzok pre veľkú európsku IT korporáciu. Keď práve nepíše blog, venuje svoj voľný čas širokej škále záujmov, koníčkov a aktivít, čo sa môže do istej miery odrážať v rôznorodosti tém na tejto webovej lokalite.