Miklix

Fowler-Noll-Vo FNV1-64 räsikoodi kalkulaator

Avaldatud: 17. veebruar 2025, kell 21:34:44 UTC

Räsikoodi kalkulaator, mis kasutab Fowler-Noll-Vo 1 64-bitist (FNV1-64) räsifunktsiooni, et arvutada tekstisisestuse või faili üleslaadimise põhjal räsikood.

See lehekülg on inglise keelest masintõlgitud, et muuta see võimalikult paljudele inimestele kättesaadavaks. Kahjuks ei ole masintõlge veel täiuslik tehnoloogia, mistõttu võivad esineda vead. Kui soovite, võite vaadata ingliskeelset originaalversiooni siin:

Fowler-Noll-Vo FNV1-64 Hash Code Calculator

FNV-1 64-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 64-bitise (8-baidise) räsikoodi, mida sageli esitatakse 16-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.


Uue Hash-koodi arvutamine

Selle vormi kaudu esitatud andmeid või üleslaetud faile hoitakse serveris ainult nii kaua, kui kaua kulub taotletud hash-koodi genereerimiseks. Need kustutatakse vahetult enne tulemuse tagastamist teie brauserile.

Sisendandmed:



Esitatud tekst on UTF-8 kodeeritud. Kuna hash-funktsioonid töötavad binaarsete andmetega, on tulemus teistsugune kui siis, kui tekst oleks mõnes muus kodeeringus. Kui teil on vaja arvutada mingis kindlas kodeeringus oleva teksti hash, peaksite selle asemel üles laadima faili.



Teave Fowler-Noll-Vo FNV-1 64-bitise räsialgoritmi kohta

Ma ei ole matemaatik, kuid püüan seda räsifunktsiooni selgitada analoogia abil, millest mu kaas-mittemaatikutest 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 64-bitine originaalversioon. Saadaval on ka täiustatud FNV-1a 64-bitine versioon: Fowler-Noll-Vo FNV1a-64 räsikoodi kalkulaator

Jagage Bluesky'sJaga FacebookisJagage LinkedInisJaga TumblrisJaga X-isJagage LinkedInisKinnitage Pinterestis

Mikkel Bang Christensen

Autorist

Mikkel Bang Christensen
Mikkel on miklix.com looja ja omanik. Tal on üle 20 aasta kogemust professionaalse programmeerija/tarkvaraarendajana ning praegu töötab ta täiskohaga suures Euroopa IT-ettevõttes. Kui ta ei kirjuta blogi, veedab ta oma vaba aega mitmesuguste huvide, hobide ja tegevustega, mis võib mingil määral kajastuda sellel veebisaidil käsitletavate teemade mitmekesisuses.