Miklix

Fowler-Noll-Vo FNV1-64 maišos kodo skaičiuotuvas

Paskelbta: 2025 m. vasario 17 d. 21:34:56 UTC

Maišos kodo skaičiuotuvas, kuris naudoja Fowler-Noll-Vo 1 64 bitų (FNV1-64) maišos funkciją, kad apskaičiuotų maišos kodą pagal teksto įvestį arba failo įkėlimą.

Š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 FNV1-64 Hash Code Calculator

FNV-1 64 bitų maišos funkcija yra Fowler–Noll–Vo (FNV) maišos funkcijų šeimos dalis, skirta greitai maišyti, išlaikant gerą maišos reikšmių paskirstymą. Jis dažniausiai naudojamas tokiose programose kaip maišos lentelės, kontrolinės sumos ir duomenų paieškos. Jis sukuria 64 bitų (8 baitų) maišos kodą, dažnai pateikiamą kaip 16 skaitmenų šešioliktainis skaičius.

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-1 64 bitų maišos algoritmą

Nesu matematikas, bet pabandysiu paaiškinti šią maišos funkciją naudodamas analogiją, kurią gali suprasti mano kolegos ne matematikai. Jei jums labiau patinka moksliškai teisingas, baisus matematinis paaiškinimas, aš tikiu, kad jį rasite kitur ;-)

Pirma, pagalvokime apie FNV-1 algoritmą kaip apie specialaus kokteilio gaminimo receptą. Kiekvienas jūsų pridėtas ingredientas (pvz., vaisiai, pienas ar medus) yra duomenų dalis, pvz., raidės, skaičiai ar net visas failas.

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

Tai, kaip FNV-1 algoritmas tai daro, yra kelių etapų procesas:

1 veiksmas: pradėkite nuo bazės (offsetinio pagrindo)

Pagalvokite apie tai kaip į trintuvą įpylę specialaus kokteilio pagrindo. Šis pagrindas visada yra tas pats, nesvarbu, kokius ingredientus pridėsite. FNV-1 tai vadinama „offsetiniu pagrindu“ – tik išgalvotu pradiniu numeriu.

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

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

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

Pridėję kiekvieną ingredientą, paspaudžiate maišymo mygtuką, bet štai toks posūkis: maišytuvas viską padaugina iš slapto „stebuklingo skaičiaus“, vadinamo FNV pirminiu. Tai padeda labai gerai sumaišyti dalykus.

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

Prieš pridėdami kitą ingredientą, pabarstykite šiek tiek stebuklingų dulkių (tai yra XOR operacija). Tai tarsi netikėtai pakeistas skonis, užtikrinantis, kad net nedideli pakeitimai padarys didelį skirtumą.

5 veiksmas: kartokite, kol baigsite

Po kiekvieno naujo ingrediento nuolat maišote ir purškiate magijos, kol viską apdorosite.

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

Baigę išpilkite kokteilį. Galutinis skonis (maišos vertė) yra unikalus tam tikslui ingredientų deriniui. Jei būtum pridėjęs nors vieną papildomą mėlynę, jos skonis būtų visai kitoks.

Čia pateikta versija yra originali FNV-1 64 bitų versija. Taip pat yra patobulinta FNV-1a 64 bitų versija: Fowler-Noll-Vo FNV1a-64 maišos kodo skaičiuoklė

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

Mikkel Bang Christensen

Apie autorių

Mikkel Bang 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.