Miklix

Fowler-Noll-Vo FNV1a-64 maišos kodo skaičiuoklė

Paskelbta: 2025 m. vasario 17 d. 21:46:46 UTC
Paskutinį kartą atnaujinta: 2026 m. sausio 12 d. 13:27:34 UTC

Maišos kodo skaičiuoklė, kuri naudoja „Fowler-Noll-Vo 1a 64 bitų“ (FNV1a-64) maišos funkciją maišos kodui apskaičiuoti pagal teksto įvestį arba įkeltą failą.

Šis puslapis buvo mašininiu būdu išverstas iš anglų kalbos, kad juo galėtų naudotis kuo daugiau žmonių. Deja, mašininis vertimas dar nėra tobula technologija, todėl gali pasitaikyti klaidų. Jei pageidaujate, originalią versiją anglų kalba galite peržiūrėti čia:

Fowler-Noll-Vo FNV1a-64 Hash Code Calculator

64 bitų maišos funkcija FNV-1a yra Fowler-Noll-Vo (FNV) maišos funkcijų šeimos dalis, skirta greitam maišymui, išlaikant gerą maišos reikšmių pasiskirstymą. Ji dažniausiai naudojama tokiose programose kaip maišos lentelės, kontrolinės sumos ir duomenų paieška. Ji sukuria 64 bitų (8 baitų) maišos kodą, dažnai pateikiamą kaip 16 skaitmenų šešioliktainis skaičius.

FNV-1a variantas yra patobulinta originalios FNV-1 funkcijos versija, pasižyminti geresniu saugumu.

Visiškai atskleidžiu informaciją: šiame puslapyje naudojamos hash funkcijos konkrečios realizacijos nerašiau. Tai standartinė PHP programavimo kalbos funkcija. Aš tik sukūriau žiniatinklio sąsają, kad patogumo dėlei ji būtų viešai prieinama.


Apskaičiuokite naująjį slaptažodžių kodą

Šioje formoje pateikti duomenys arba įkelti failai serveryje bus saugomi tik tiek laiko, kiek reikia prašomam hash kodui sugeneruoti. Jie bus ištrinti prieš pat rezultatui grįžtant į naršyklę.

Įvesties duomenys:



Pateiktas tekstas yra UTF-8 koduotas. Kadangi hash funkcijos veikia su dvejetainiais duomenimis, rezultatas bus kitoks nei tuo atveju, jei tekstas būtų koduotas kitu kodu. Jei jums reikia apskaičiuoti teksto hash tam tikra kodavimo forma, vietoj to turėtumėte įkelti failą.



Apie Fowler-Noll-Vo FNV-1a 64 bitų maišos algoritmą

Nesu matematikas, bet pabandysiu paaiškinti šią maišos funkciją naudodamas analogiją, kurią suprastų mano kolegos ne matematikai. Jei jums labiau patinka moksliškai teisingas, bauginančiai matematinis paaiškinimas, esu tikras, kad jį rasite kitur ;-)

Pirmiausia, įsivaizduokime FNV-1 algoritmą kaip ypatingo kokteilio receptą. Kiekvienas jūsų pridėtas ingredientas (pvz., vaisiai, pienas ar medus) reiškia duomenų dalį – raides, skaičius ar net visą failą.

Dabar tikslas yra sumaišyti šiuos ingredientus labai specifiniu būdu, kad net ir mažiausias recepto pakeitimas (pavyzdžiui, pridėjus vieną papildomą mėlynę) visiškai pakeistų kokteilio skonį. Taip veikia maišos funkcijos – jos sukuria unikalų „skonį“ (arba maišos vertę) kiekvienam unikaliam ingredientų rinkiniui (arba įvesties duomenims).

FNV-1 algoritmas tai atlieka keliais etapais:

1 veiksmas: pradėkite nuo bazės (kompensacinės bazės)

Įsivaizduokite tai kaip specialaus kokteilio pagrindo įpylimą į trintuvą. Šis pagrindas visada yra tas pats, nesvarbu, kokius ingredientus dedate. FNV-1 tai vadinama „kompensaciniu pagrindu“ – tai tiesiog įmantrus pradinis skaičius.

2 veiksmas: ingredientų pridėjimas po vieną (duomenų apdorojimas)

Dabar pradėkite dėti ingredientus po vieną – tarkime, braškę, tada bananą, tada šiek tiek medaus. Kiekvienas iš jų reiškia vieną duomenų baitą.

3 veiksmas: sumaišykite su slaptu daugikliu („FNV Prime“)

Įdėjus kiekvieną ingredientą, paspaudžiamas maišymo mygtukas, tačiau štai kur esmė: trintuvas viską padaugina iš slapto „magiškojo skaičiaus“, vadinamo pirminiu FNV skaičiumi. Tai padeda viską gerai išmaišyti.

4 veiksmas: pridėkite šiek tiek magijos (XOR operacija)

Prieš įdedant kitą ingredientą, pabarstote šiek tiek stebuklingų dulkių (tai yra XOR operacija). Tai tarsi netikėtas skonio pakeitimas, užtikrinant, kad net ir maži pakeitimai turėtų didelį skirtumą.

5 veiksmas: kartokite, kol baigsite

Jūs toliau maišote ir barstote magiją po kiekvieno naujo ingrediento, kol viską apdorojate.

6 veiksmas: Galutinis kokteilis (maišos vertė)

Kai baigsite, supilsite kokteilį. Galutinis skonis (maišos vertė) priklauso nuo to konkretaus ingredientų derinio. Jei būtumėte pridėję bent vieną papildomą mėlynę, skonis būtų visiškai kitoks.

Čia pateikta versija yra patobulinta FNV-1a 64 bitų versija. Jei jums reikia originalios versijos, turiu ir tam skirtą skaičiuotuvą: Nuoroda

Papildoma literatūra

Jei jums patiko šis įrašas, jums taip pat gali patikti šie pasiūlymai:


Pasidalinkite „Bluesky“.Dalintis FacebookBendrinkite „LinkedIn“.Bendrinkite „Tumblr“.Dalintis XBendrinkite „LinkedIn“.Prisegti prie Pinterest

Mikkel Christensen

Apie autorių

Mikkel Christensen
Mikkelis yra miklix.com kūrėjas ir savininkas. Jis turi daugiau nei 20 metų profesionalaus kompiuterių programuotojo ir programinės įrangos kūrėjo patirtį ir šiuo metu visą darbo dieną dirba didelėje Europos IT korporacijoje. Kai jis nerašo tinklaraščio, laisvalaikį skiria įvairiems interesams, pomėgiams ir užsiėmimams, kurie tam tikra prasme gali atsispindėti šioje svetainėje nagrinėjamų temų įvairovėje.