Kalkulačka hash kódu Fowler-Noll-Vo FNV1a-64
Publikované: 17. februára 2025 o 21:47:10 UTC
Kalkulačka hash kódu, ktorá používa funkciu hash Fowler-Noll-Vo 1a 64 bit (FNV1a-64) na výpočet hash kódu na základe zadávania textu alebo nahrávania súboru.Fowler-Noll-Vo FNV1a-64 Hash Code Calculator
64-bitová hašovacia funkcia FNV-1a 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.
Variant FNV-1a je vylepšená verzia oproti pôvodnej funkcii FNV-1 s lepším zabezpečením.
Ú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.
O 64-bitovom hashovom algoritme Fowler-Noll-Vo FNV-1a
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 prisypávate 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 vylepšená 64-bitová verzia FNV-1a. Ak potrebujete originálnu verziu, mám na to aj kalkulačku: Kalkulačka hash kódu Fowler-Noll-Vo FNV1-64