Miklix

Fowler-Noll-Vo FNV1a-32 hash-koodilaskin

Julkaistu: 18. helmikuuta 2025 klo 0.09.00 UTC

Hajakoodilaskin, joka käyttää Fowler-Noll-Vo 1a 32-bitin (FNV1a-32) hash-funktiota laskemaan hash-koodin tekstinsyötön 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 FNV1a-32 Hash Code Calculator

32-bittinen tiivistefunktio FNV-1a on osa Fowler–Noll–Vo (FNV) -tiivistefunktioperhettä, joka on suunniteltu nopeaan tiivistykseen säilyttäen samalla tiivistearvojen hyvä jakautuminen. Sitä käytetään yleisesti sovelluksissa, kuten hash-taulukoissa, tarkistussummissa ja datahauissa. Se tuottaa 32-bittisen (4 tavun) hash-koodin, joka esitetään usein 8-numeroisena heksadesimaalilukuna.

FNV-1a-variantti on parannettu versio alkuperäiseen FNV-1-toimintoon verrattuna paremmalla suojauksella.

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-1a 32-bittisestä hajautusalgoritmista

En ole matemaatikko, mutta yritän selittää tämän hash-funktion käyttämällä analogiaa, jonka muut kuin matemaatikot voivat ymmärtää. Jos pidät tieteellisesti oikeasta, pelottavasta matemaattisesta selityksestä, löydät sen varmasti muualta ;-)

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

Nyt tavoitteena on sekoittaa nämä ainekset hyvin spesifisesti niin, että pienikin muutos reseptissä (kuten yhden mustikan lisääminen) tekee smoothiesta täysin erilaisen maun. Näin hash-funktiot toimivat – ne luovat ainutlaatuisen "maun" (tai hash-arvon) jokaiselle ainutlaatuiselle ainesjoukolle (tai syöttötiedolle).

Tapa, jolla FNV-1-algoritmi tekee tämän, on monivaiheinen prosessi:

Vaihe 1: Aloita pohjalla (offset Basis)

Ajattele tätä kuin kaataisit erityisen smoothiepohjan tehosekoittimeen. Tämä pohja on aina sama, riippumatta siitä, mitä ainesosia lisäät. FNV-1:ssä tätä kutsutaan "offset-perusteeksi" - vain hieno aloitusnumero.

Vaihe 2: Lisää ainesosat yksitellen (tietojen käsittely)

Nyt alat lisätä aineksiasi yksi kerrallaan - oletetaan, että mansikka, sitten banaani, sitten vähän hunajaa. Jokainen näistä edustaa datatavua.

Vaihe 3: Sekoita salaisen kertoimen kanssa (FNV Prime)

Kun olet lisännyt jokaisen ainesosan, painat blend-painiketta, mutta tässä on käänne: tehosekoitin kertoo kaiken salaisella "maagisella numerolla", jota kutsutaan FNV-alkuluvuksi. Tämä auttaa sekoittamaan asioita todella hyvin.

Vaihe 4: Lisää Dash of Magic (XOR-toiminto)

Ennen kuin lisäät seuraavan ainesosan, ripottele joukkoon hieman taikapölyä (tämä on XOR-toiminto). Se on kuin kääntäisi makua odottamattomilla tavoilla varmistaen, että pienilläkin muutoksilla on suuri merkitys.

Vaihe 5: Toista, kunnes olet valmis

Sekoitat ja ripottelet taikuutta jokaisen uuden ainesosan jälkeen, kunnes olet käsitellyt kaiken.

Vaihe 6: Viimeinen smoothie (hash-arvo)

Kun olet valmis, kaada smoothie pois. Lopullinen maku (hash-arvo) on ainutlaatuinen juuri tälle ainesosien yhdistelmälle. Jos olisit lisännyt edes yhden mustikan, se maistuisi täysin erilaiselta.

Tässä esitetty versio on parannettu FNV-1a 32-bittinen versio. Jos tarvitset alkuperäisen version, minulla on siihen myös laskin: Fowler-Noll-Vo FNV1-32 hash-koodilaskin

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

Mikkel Bang Christensen

Kirjoittajasta

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