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.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ä.
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