Fowler-Noll-Vo FNV1-32 räsikoodi kalkulaator
Avaldatud: 18. veebruar 2025, kell 00:15:33 UTC
Räsikoodi kalkulaator, mis kasutab Fowler-Noll-Vo 1 32-bitist (FNV1-32) räsifunktsiooni, et arvutada tekstisisestuse või faili üleslaadimise põhjal räsikood.Fowler-Noll-Vo FNV1-32 Hash Code Calculator
FNV-1 32-bitine räsifunktsioon 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 32-bitise (4-baidise) räsikoodi, mida sageli esitatakse 8-kohalise kuueteistkümnendsüsteemi numbrina.
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-1 32-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 spetsiaalse smuutipõhja valamine blenderisse. See põhi on alati sama, olenemata sellest, milliseid koostisosi lisate. FNV-1-s nimetatakse seda "nihkealuseks" - 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 ümberpööramine ootamatul viisil, tagades, et isegi väikesed muudatused muudavad palju.
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 FNV-1 32-bitine originaalversioon. Saadaval on ka täiustatud FNV-1a 32-bitine versioon: Fowler-Noll-Vo FNV1a-32 räsikoodi kalkulaator