Miklix

Fowler-Noll-Vo FNV1a-64 jaucējkoda kalkulators

Publicēts: 2025. gada 17. februāris 21:46:50 UTC

Jaucējkoda kalkulators, kas izmanto Fowler-Noll-Vo 1a 64 bitu (FNV1a-64) jaukšanas funkciju, lai aprēķinātu jaucējkodu, pamatojoties uz teksta ievadi vai faila augšupielādi.

Šī lapa tika mašīntulkota no angļu valodas, lai padarītu to pieejamu pēc iespējas vairāk cilvēkiem. Diemžēl mašīntulkošana vēl nav pilnīga tehnoloģija, tāpēc tajā var rasties kļūdas. Ja vēlaties, oriģinālo versiju angļu valodā varat apskatīt šeit:

Fowler-Noll-Vo FNV1a-64 Hash Code Calculator

FNV-1a 64 bitu jaukšanas funkcija ir daļa no Fowler–Noll–Vo (FNV) jaukšanas funkciju saimes, kas paredzēta ātrai jaukšanai, vienlaikus saglabājot labu jaucējvērtību sadalījumu. To parasti izmanto tādās lietojumprogrammās kā hash tabulas, kontrolsummas un datu meklēšana. Tas rada 64 bitu (8 baitu) jaucējkodu, kas bieži tiek attēlots kā 16 ciparu heksadecimālais skaitlis.

FNV-1a variants ir uzlabota versija salīdzinājumā ar sākotnējo FNV-1 funkciju ar labāku drošību.

Pilnīga informācijas izpaušana: es neesmu rakstījis šajā lapā izmantotās hash funkcijas konkrēto implementāciju. Tā ir standarta funkcija, kas iekļauta PHP programmēšanas valodā. Es tikai izveidoju tīmekļa saskarni, lai padarītu to publiski pieejamu šeit ērtības labad.


Aprēķināt jaunu Hash kodu

Izmantojot šo veidlapu, iesniegtie dati vai augšupielādētie faili tiks glabāti serverī tikai tik ilgi, cik nepieciešams, lai ģenerētu pieprasīto hash kodu. Tie tiks dzēsti tūlīt pirms rezultāta atgriešanas pārlūkprogrammā.

Ieejas dati:



Iesniegtais teksts ir kodēts UTF-8 formātā. Tā kā hash funkcijas darbojas ar binārajiem datiem, rezultāts būs citāds nekā tad, ja teksts būtu citā kodējumā. Ja jums ir nepieciešams aprēķināt teksta hash īpašā kodējumā, tā vietā jums ir jānosūta fails.



Par Fowler-Noll-Vo FNV-1a 64 bitu jaukšanas algoritmu

Es neesmu matemātiķis, bet es mēģināšu izskaidrot šo jaucējfunkciju, izmantojot analoģiju, ko var saprast mani kolēģi, kas nav matemātiķi. Ja vēlaties zinātniski korektu, biedējošu matemātisku skaidrojumu, esmu pārliecināts, ka jūs to varat atrast citur ;-)

Vispirms padomāsim par FNV-1 algoritmu kā recepti īpaša smūtija pagatavošanai. Katra pievienotā sastāvdaļa (piemēram, augļi, piens vai medus) atspoguļo datu daļu, piemēram, burtus, ciparus vai pat visu failu.

Tagad mērķis ir sajaukt šīs sastāvdaļas ļoti specifiskā veidā, lai pat mazākās receptes izmaiņas (piemēram, vienas papildu mellenes pievienošana) padarītu smūtiju garšu pavisam citādu. Lūk, kā darbojas jaucējfunkcijas — tās rada unikālu “garšu” (jeb jaucējvērtību) katrai unikālajai sastāvdaļu kopai (vai ievades datiem).

Tas, kā FNV-1 algoritms to dara, ir daudzpakāpju process:

1. darbība: sāciet ar bāzi (nobīdes bāze)

Padomājiet par to tāpat kā ieliet blenderī īpašu smūtija pamatni. Šī bāze vienmēr ir viena un tā pati, neatkarīgi no tā, kādas sastāvdaļas pievienojat. FNV-1 to sauc par "nobīdes bāzi" - tikai izdomāts sākuma numurs.

2. darbība: pievienojiet sastāvdaļas pa vienam (datu apstrāde)

Tagad sāciet pievienot sastāvdaļas pa vienai — teiksim, zemeni, tad banānu, tad medu. Katrs no tiem apzīmē datu baitu.

3. darbība: sajauciet ar slepeno reizinātāju (FNV Prime)

Pēc katras sastāvdaļas pievienošanas jūs nospiežat sajaukšanas pogu, taču šeit ir pagrieziens: blenderis visu reizina ar slepenu "maģisko skaitli", ko sauc par FNV pirmizrādi. Tas palīdz ļoti labi sajaukt lietas.

4. darbība: pievienojiet nedaudz maģijas (XOR darbība)

Pirms nākamās sastāvdaļas pievienošanas apkaisa nedaudz burvju putekļu (šī ir XOR darbība). Tas ir kā garšas maiņa neparedzētā veidā, nodrošinot, ka pat nelielas izmaiņas rada lielas izmaiņas.

5. darbība: atkārtojiet, līdz esat pabeidzis

Jūs turpināt blendēt un smidzināt burvju pēc katras jaunas sastāvdaļas, līdz esat visu apstrādājis.

6. darbība: pēdējais smūtijs (jauktā vērtība)

Kad esat pabeidzis, izlejiet smūtiju. Galīgā garša (hash vērtība) ir unikāla šai precīzai sastāvdaļu kombinācijai. Ja būtu pievienojusi kaut vienu lieku melleni, tā garšotu pavisam savādāk.

Šeit parādītā versija ir uzlabotā FNV-1a 64 bitu versija. Ja jums ir nepieciešama oriģinālā versija, man ir arī kalkulators tam: Fowler-Noll-Vo FNV1-64 jaucējkoda kalkulators

Kopīgojiet pakalpojumā BlueskyKopīgot FacebookKopīgojiet vietnē LinkedInKopīgojiet vietnē TumblrKopīgot vietnē XKopīgojiet vietnē LinkedInPiespraust vietnē Pinterest

Mikkel Bang Christensen

Par autoru

Mikkel Bang Christensen
Mikels ir miklix.com radītājs un īpašnieks. Viņam ir vairāk nekā 20 gadu pieredze kā profesionālam programmētājam/programmatūras izstrādātājam, un pašlaik viņš strādā pilna laika darbu lielā Eiropas IT korporācijā. Kad viņš neraksta blogus, viņš pavada brīvo laiku, pievēršoties dažādām interesēm, hobijiem un aktivitātēm, kas zināmā mērā var atspoguļoties šajā tīmekļa vietnē aplūkoto tēmu daudzveidībā.