Fowler-Noll-Vo FNV1a-64 räsikoodi kalkulaator
Avaldatud: 17. veebruar 2025, kell 21:46:33 UTC
Viimati uuendatud: 12. jaanuar 2026, kell 13:27:29 UTC
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 genereerib 64-bitise (8-baidise) räsikoodi, mida sageli esitatakse 16-kohalise kuueteistkümnendsüsteemi numbrina.
FNV-1a variant on algse FNV-1 funktsiooni täiustatud versioon, millel on parem turvalisus.
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.
Fowler-Noll-Vo FNV-1a 64-bitise räsialgoritmi kohta
Ma ei ole matemaatik, aga püüan seda räsifunktsiooni selgitada analoogia abil, millest mu mittematemaatikutest kolleegid aru saavad. Kui eelistate teaduslikult korrektset ja hirmuäratavat seletust, siis olen kindel, et leiate selle mujalt ;-)
Esiteks, kujutleme FNV-1 algoritmi kui retsepti erilise smuuti valmistamiseks. Iga lisatud koostisosa (näiteks puuviljad, piim või mesi) esindab andmekogumit – näiteks tähti, numbreid või isegi tervet faili.
Nüüd on eesmärk segada neid koostisosi väga spetsiifilisel viisil, nii et isegi kõige väiksemgi muudatus retseptis (näiteks ühe lisamustika lisamine) muudaks smuuti maitse täiesti erinevaks. Nii toimivadki räsifunktsioonid – need loovad iga unikaalse koostisosade komplekti (või sisendandmete) jaoks ainulaadse "maitse" (või räsiväärtuse).
FNV-1 algoritm teeb seda mitmeastmelise protsessina:
1. samm: alustage alusest (nihke alus)
Mõtle sellele kui spetsiaalse smuutipõhja valamisele blenderisse. See põhi on alati sama, olenemata lisatavatest koostisosadest. FNV-1-s nimetatakse seda "nihkepõhjaks" – see on lihtsalt uhke algusnumber.
2. samm: lisage koostisosad ükshaaval (andmete töötlemine)
Nüüd hakkad koostisosi ükshaaval lisama – näiteks maasikas, siis banaan ja siis natuke mett. Igaüks neist esindab ühte baiti andmeid.
3. samm: sega salajase kordajaga (FNV Prime)
Pärast iga koostisosa lisamist vajutad segamisnuppu, aga siin on nüanss: blender korrutab kõik salajase "maagilise numbriga", mida nimetatakse FNV algarvuks. See aitab asju väga hästi segada.
4. samm: lisage näpuotsatäis maagiat (XOR-operatsioon)
Enne järgmise koostisosa lisamist puista peale veidi võlupulbrit (see on XOR-operatsioon). See on nagu maitse ootamatult muutmine, tagades, et isegi väikesed muudatused muudavad oluliselt.
5. samm: korrake, kuni olete lõpetanud
Sa jätkad iga uue koostisosa järel segamist ja maagia piserdamist, kuni oled kõik töödelnud.
6. samm: Lõplik smuuti (räsi väärtus)
Kui oled valmis, valad smuuti välja. Lõppmaitse (räsi väärtus) on sellele täpsele koostisosade kombinatsioonile ainuomane. Kui oleksid lisanud kasvõi ühe mustika rohkem, oleks see maitsenud hoopis teistmoodi.
Siin esitatud versioon on täiustatud FNV-1a 64-bitine versioon. Kui vajate originaalversiooni, on mul selleks ka kalkulaator: Link
Lisalugemist
Kui see postitus teile meeldis, võivad teile meeldida ka need soovitused:
