Miklix

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

Publicēts: 2025. gada 18. februāris 00:09:15 UTC
Pēdējo reizi atjaunināts: 2026. gada 12. janvāris 13:28:22 UTC

Jaucējkoda kalkulators, kas izmanto Fowler-Noll-Vo 1a 32 bitu (FNV1a-32) jaucējfunkciju, 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-32 Hash Code Calculator

FNV-1a 32 bitu jaucējfunkcija ir daļa no Fowler-Noll-Vo (FNV) jaucējfunkciju saimes, kas paredzēta ātrai jaucējfunkcijai, vienlaikus saglabājot labu jaucējvērtību sadalījumu. To parasti izmanto tādās lietojumprogrammās kā jaucējtabulas, kontrolsummas un datu meklēšana. Tā ģenerē 32 bitu (4 baitu) jaucējkodu, kas bieži tiek attēlots kā 8 ciparu heksadecimāls 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 32 bitu jaucējkodolagoritmu

Es neesmu matemātiķis, bet mēģināšu izskaidrot šo hešfunkciju, izmantojot analoģiju, ko var saprast mani kolēģi, kas nav matemātiķi. Ja dodat priekšroku zinātniski pareizam, biedējoši matemātiskam skaidrojumam, esmu pārliecināts, ka to varat atrast citur ;-)

Vispirms iedomāsimies FNV-1 algoritmu kā recepti īpaša smūtija pagatavošanai. Katra pievienotā sastāvdaļa (piemēram, augļi, piens vai medus) apzīmē datu vienību — burtus, ciparus vai pat visu failu.

Tagad mērķis ir sajaukt šīs sastāvdaļas ļoti specifiskā veidā, lai pat vismazākās izmaiņas receptē (piemēram, vienas papildu mellenes pievienošana) padarītu smūtija garšu pilnīgi atšķirīgu. Tā darbojas jaucējfunkcijas — tās rada unikālu "garšu" (vai jaucējvērtību) katram unikālajam sastāvdaļu (vai ievades datu) kopumam.

FNV-1 algoritma darbības princips ir daudzpakāpju process:

1. darbība. Sāciet ar bāzi (nobīdes bāzi)

Iedomājieties to kā īpašas smūtija bāzes ieliešanu blenderī. Šī bāze vienmēr ir vienāda neatkarīgi no pievienotajām sastāvdaļām. FNV-1 to sauc par "nobīdes bāzi" — tas ir tikai izdomāts sākuma skaitlis.

2. darbība. Sastāvdaļu pievienošana pa vienai (datu apstrāde)

Tagad sāc pievienot sastāvdaļas pa vienai — teiksim, zemeni, tad banānu un tad nedaudz medus. Katra no tām apzīmē vienu datu baitu.

3. solis: sajaukšana ar slepeno reizinātāju (FNV Prime)

Pēc katras sastāvdaļas pievienošanas jānospiež blendēšanas poga, taču te nu ir pavērsiens: blenderis visu reizina ar slepenu "maģisko skaitli", ko sauc par FNV pirmskaitli. Tas palīdz visu ļoti labi sajaukt.

4. solis: pievienojiet maģijas pieskārienu (XOR darbība)

Pirms nākamās sastāvdaļas pievienošanas pārkaisa nedaudz burvju putekļu (tā ir XOR darbība). Tas ir kā negaidīti mainīt garšu, nodrošinot, ka pat nelielas izmaiņas rada lielu atšķirību.

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

Tu turpini maisīt un apkaisīt maģiju pēc katras jaunās sastāvdaļas, līdz esi visu apstrādājis.

6. solis: Galīgais kokteilis (haša vērtība)

Kad esat pabeidzis, ielejiet smūtiju. Galīgā garša (haša vērtība) ir unikāla šai konkrētajai sastāvdaļu kombinācijai. Ja jūs būtu pievienojis kaut vienu papildu melleni, tā garšotu pavisam citādi.

Šeit piedāvātā versija ir uzlabotā FNV-1a 32 bitu versija. Ja jums ir nepieciešama oriģinālā versija, man ir arī kalkulators: Saite

Papildu lasāmviela

Ja jums patika šī ziņa, jums varētu patikt arī šie ieteikumi:


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

Mikkel Christensen

Par autoru

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