Miklix

Fowler-Noll-Vo FNV1-32 hash-koodilaskin

Julkaistu: 18. helmikuuta 2025 klo 0.15.36 UTC
Viimeksi päivitetty: 12. tammikuuta 2026 klo 13.29.12 UTC

Hajautuskoodin laskin, joka käyttää Fowler-Noll-Vo 1 32-bittistä (FNV1-32) -hajautusfunktiota laskeakseen hajautuskoodin tekstisyötteen tai tiedoston latauksen perusteella.

Tämä sivu on käännetty koneellisesti englannista, jotta se olisi mahdollisimman monen ihmisen saatavilla. Valitettavasti konekääntäminen ei ole vielä täydellistä tekniikkaa, joten virheitä voi esiintyä. Voit halutessasi tarkastella alkuperäistä englanninkielistä versiota täällä:

Fowler-Noll-Vo FNV1-32 Hash Code Calculator

32-bittinen FNV-1-tiivistefunktio on osa Fowler–Noll–Vo (FNV) -tiivistefunktioiden perhettä, joka on suunniteltu nopeaan tiivisteeseen säilyttäen samalla tiivistearvojen hyvän jakauman. Sitä käytetään yleisesti sovelluksissa, kuten tiivistetaulukoissa, tarkistussummissa ja datan haussa. Se tuottaa 32-bittisen (4 tavun) tiivistekoodin, joka usein esitetään 8-numeroisena heksadesimaalilukuna.

Täydellinen paljastus: en ole kirjoittanut tällä sivulla käytetyn hash-funktion toteutusta. Se on PHP-ohjelmointikielen mukana tuleva vakiofunktio. Tein vain web-käyttöliittymän, jotta se olisi julkisesti saatavilla täällä.


Laske uusi Hash-koodi

Tämän lomakkeen kautta lähetettyjä tietoja tai ladattuja tiedostoja säilytetään palvelimella vain niin kauan kuin pyydetyn hash-koodin luominen kestää. Ne poistetaan välittömästi ennen kuin tulos palautetaan selaimellesi.

Syöttötiedot:



Toimitettu teksti on UTF-8-koodattu. Koska hash-funktiot toimivat binääridatalla, tulos on erilainen kuin jos teksti olisi muulla koodauksella. Jos sinun on laskettava hash-tiedosto tekstistä tietyllä koodauksella, sinun on ladattava tiedosto.



Tietoja Fowler-Noll-Vo FNV-1 32-bittisestä hajautusalgoritmista

En ole matemaatikko, mutta yritän selittää tämän hajautusfunktion analogialla, jonka muut kuin matemaatikot ymmärtävät. Jos haluat tieteellisesti oikean ja pelottavan matemaattisen selityksen, olen varma, että löydät sen muualta ;-)

Ajatellaanpa ensin FNV-1-algoritmia kuin reseptiä erityisen smoothien valmistamiseksi. Jokainen lisäämäsi ainesosa (kuten hedelmät, maito tai hunaja) edustaa yhtä tietoa – kuten kirjaimia, numeroita tai jopa kokonaista tiedostoa.

Tavoitteena on nyt sekoittaa nämä ainekset hyvin tietyllä tavalla, jotta pieninkin muutos reseptissä (kuten yhden ylimääräisen mustikan lisääminen) tekee smoothiesta täysin erilaisen maun. Näin hajautusfunktiot toimivat – ne luovat ainutlaatuisen "maun" (tai hajautusarvon) jokaiselle ainutlaatuiselle ainesosajoukolle (tai syöttötiedolle).

FNV-1-algoritmi tekee tämän monivaiheisen prosessin avulla:

Vaihe 1: Aloita pohjasta (offset-pohja)

Ajattele tätä kuin kaataisit erityisen smoothie-pohjan tehosekoittimeen. Tämä pohja on aina sama riippumatta siitä, mitä aineksia lisäät. FNV-1:ssä tätä kutsutaan "offset-pohjaksi" – se on vain hieno lähtönumero.

Vaihe 2: Lisää ainekset yksi kerrallaan (tietojen käsittely)

Nyt alat lisätä aineksia yksi kerrallaan – sanotaan mansikka, sitten banaani ja sitten hieman hunajaa. Jokainen näistä edustaa yhtä tavua dataa.

Vaihe 3: Sekoita salaisella kertoimella (FNV Prime)

Kun olet lisännyt jokaisen ainesosan, painat sekoituspainiketta, mutta tässä on juju: tehosekoitin kertoo kaiken salaisella "taikaluvulla", jota kutsutaan FNV-alkulukuksi. Tämä auttaa sekoittamaan ainekset todella hyvin.

Vaihe 4: Lisää ripaus taikaa (XOR-operaatio)

Ennen seuraavan ainesosan lisäämistä ripottelet päälle hieman taikapölyä (tämä on XOR-operaatio). Se on kuin vaihtaisi makua odottamattomalla tavalla, varmistaen, että pienilläkin muutoksilla on suuri merkitys.

Vaihe 5: Toista, kunnes valmis

Jatkat sekoittamista ja taikuuden ripottelemista jokaisen uuden ainesosan jälkeen, kunnes olet käsitellyt kaiken.

Vaihe 6: Lopullinen smoothie (hajautusarvo)

Kun olet valmis, kaadat smoothien pois. Lopullinen maku (hash-arvo) on ainutlaatuinen juuri kyseiselle ainesosayhdistelmälle. Jos olisit lisännyt yhdenkin ylimääräisen mustikan, se maistuisi täysin erilaiselta.

Tässä esitetty versio on alkuperäinen FNV-1:n 32-bittinen versio. Saatavilla on myös parannettu FNV-1a:n 32-bittinen versio: Linkki

Lisälukemista

Jos pidit tästä postauksesta, saatat pitää myös näistä ehdotuksista:


Jaa BlueskyssäJaa FacebookissaJaa LinkedInissäJaa TumblrissaJaa X:ssäJaa LinkedInissäPin Pinterestissä

Mikkel Christensen

Kirjoittajasta

Mikkel Christensen
Mikkel on miklix.com-sivuston luoja ja omistaja. Hänellä on yli 20 vuoden kokemus ammattimaisena tietokoneohjelmoijana/ohjelmistokehittäjänä, ja tällä hetkellä hän työskentelee kokopäiväisesti suuressa eurooppalaisessa IT-yrityksessä. Kun hän ei ole bloggaamassa, hän käyttää vapaa-aikaansa monenlaisiin kiinnostuksen kohteisiin, harrastuksiin ja aktiviteetteihin, mikä saattaa jossain määrin heijastua tällä verkkosivustolla käsiteltävien aiheiden moninaisuuteen.