Fowler-Noll-Vo FNV1-64 hash-koodilaskin
Julkaistu: 17. helmikuuta 2025 klo 21.34.46 UTC
Hash-koodilaskin, joka käyttää Fowler-Noll-Vo 1 64-bitin (FNV1-64) hash-funktiota hash-koodin laskemiseen tekstinsyötön tai tiedoston latauksen perusteella.Fowler-Noll-Vo FNV1-64 Hash Code Calculator
FNV-1:n 64-bittinen hajautusfunktio on osa Fowler–Noll–Vo (FNV) -tiivistefunktioperhettä, joka on suunniteltu nopeaan tiivistykseen säilyttäen samalla hyvä hajautusarvojen jakautuminen. Sitä käytetään yleisesti sovelluksissa, kuten hash-taulukoissa, tarkistussummissa ja datahauissa. Se tuottaa 64-bittisen (8 tavun) hash-koodin, joka esitetään usein 16-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ä.
Tietoja Fowler-Noll-Vo FNV-1 64-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 vähän 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 alkuperäinen FNV-1 64-bittinen versio. Saatavilla on myös parannettu FNV-1a 64-bittinen versio: Fowler-Noll-Vo FNV1a-64 hash-koodilaskin