Fowler-Noll-Vo FNV1a-64 räsikoodi kalkulaator
Avaldatud: 17. veebruar 2025, kell 21:46:33 UTC
Räsikoodi kalkulaator, mis kasutab Fowler-Noll-Vo 1a 64-bitist (FNV1a-64) räsifunktsiooni, et arvutada tekstisisestuse või faili üleslaadimise põhjal räsikood.Fowler-Noll-Vo FNV1a-64 Hash Code Calculator
64-bitine räsifunktsioon FNV-1a on osa Fowler-Noll-Vo (FNV) räsifunktsioonide perekonnast, mis on loodud kiireks räsimiseks, säilitades samal ajal räsiväärtuste hea jaotuse. Seda kasutatakse tavaliselt sellistes rakendustes nagu räsitabelid, kontrollsummad ja andmeotsingud. See loob 64-bitise (8-baidise) räsikoodi, mida sageli esitatakse 16-kohalise kuueteistkümnendsüsteemi numbrina.
Variant FNV-1a on parema turvalisusega FNV-1 originaalfunktsiooniga võrreldes täiustatud versioon.
Täielik avalikustamine: ma ei kirjutanud sellel leheküljel kasutatud hash-funktsiooni konkreetset rakendust. See on standardne funktsioon, mis kuulub PHP programmeerimiskeele juurde. Ma tegin veebiliidese ainult selleks, et see siin avalikult kättesaadavaks teha.
Teave Fowler-Noll-Vo FNV-1a 64-bitise räsialgoritmi kohta
Ma ei ole matemaatik, kuid ma püüan seda räsifunktsiooni selgitada, kasutades analoogiat, millest mu kolleegid mittematemaatikutest aru saavad. Kui eelistate teaduslikult korrektset, hirmutavat matemaatilist selgitust, siis olen kindel, et leiate selle mujalt ;-)
Esiteks, mõelgem FNV-1 algoritmile nagu spetsiaalse smuuti valmistamise retseptile. Iga lisatav koostisosa (nt puuviljad, piim või mesi) esindab andmeosa – näiteks tähti, numbreid või isegi tervet faili.
Nüüd on eesmärgiks need koostisosad väga spetsiifiliselt kokku segada, et isegi pisim muudatus retseptis (näiteks ühe mustika lisamine) muudaks smuuti maitse hoopis teistsuguseks. Nii töötavad räsifunktsioonid – need loovad iga kordumatu koostisosade komplekti (või sisendandmete) jaoks ainulaadse "maitse" (või räsiväärtuse).
See, kuidas FNV-1 algoritm seda teeb, on mitmeetapiline protsess:
1. samm: alustage alusega (nihkebaas)
Mõelge sellele, nagu valaksite blenderisse spetsiaalse smuutipõhja. See põhi on alati sama, olenemata sellest, milliseid koostisosi lisate. FNV-1-s nimetatakse seda "nihkebaasiks" - lihtsalt väljamõeldud algusnumber.
2. samm: lisage koostisosad ükshaaval (andmete töötlemine)
Nüüd hakkate ükshaaval koostisosi lisama – oletame, et maasikas, siis banaan, siis mett. Igaüks neist esindab andmebaiti.
3. samm: segage salajase kordajaga (FNV Prime)
Pärast iga koostisosa lisamist vajutate segamisnuppu, kuid siin on keerdkäik: blender korrutab kõik salajase "maagilise numbriga", mida nimetatakse FNV algarvuks. See aitab asju väga hästi segada.
4. samm: lisage Dash of Magic (XOR-operatsioon)
Enne järgmise koostisosa lisamist puistate sisse veidi võlutolmu (see on XOR-operatsioon). See on nagu maitse muutmine ootamatul viisil, tagades, et isegi väikesed muudatused muudavad oluliselt.
5. samm: korrake, kuni olete valmis
Segate ja puistate maagiat pärast iga uut koostisosa, kuni olete kõik töödeldud.
6. samm: viimane smuuti (räsiväärtus)
Kui oled valmis, kallad smuuti välja. Lõppmaitse (räsiväärtus) on ainulaadne just sellele koostisosade kombinatsioonile. Kui oleks lisanud kasvõi ühe mustika, maitseks see hoopis teistmoodi.
Siin esitatud versioon on täiustatud FNV-1a 64-bitine versioon. Kui vajate originaalversiooni, on mul selleks ka kalkulaator: Fowler-Noll-Vo FNV1-64 räsikoodi kalkulaator