Kalkulator zgoščene kode Fowler-Noll-Vo FNV1-32
Objavljeno: 18. februar 2025 ob 12:16:05 dop. UTC
Kalkulator zgoščevalne kode, ki uporablja 32-bitno zgoščevalno funkcijo Fowler-Noll-Vo 1 (FNV1-32) za izračun zgoščevalne kode na podlagi vnosa besedila ali nalaganja datoteke.Fowler-Noll-Vo FNV1-32 Hash Code Calculator
32-bitna zgoščevalna funkcija FNV-1 je del družine zgoščevalnih funkcij Fowler–Noll–Vo (FNV), zasnovana za hitro zgoščevanje ob ohranjanju dobre porazdelitve zgoščenih vrednosti. Običajno se uporablja v aplikacijah, kot so zgoščene tabele, kontrolne vsote in iskanje podatkov. Izdela 32-bitno (4-bajtno) zgoščeno kodo, ki je pogosto predstavljena kot 8-mestno šestnajstiško število.
Razkritje: nisem napisal posebne izvedbe funkcije hash, uporabljene na tej strani. Gre za standardno funkcijo, ki je vključena v programski jezik PHP. Zaradi priročnosti sem pripravil le spletni vmesnik, da je na voljo javnosti.
O 32-bitnem zgoščevalnem algoritmu Fowler-Noll-Vo FNV-1
Nisem matematik, vendar bom poskušal razložiti to zgoščevalno funkcijo z analogijo, ki jo moji kolegi nematematiki lahko razumejo. Če imate raje znanstveno pravilno, strašljivo matematično razlago, sem prepričan, da jo lahko najdete drugje ;-)
Najprej si oglejmo algoritem FNV-1 kot recept za pripravo posebnega smutija. Vsaka sestavina, ki jo dodate (kot je sadje, mleko ali med), predstavlja del podatkov – kot so črke, številke ali celo celotna datoteka.
Zdaj je cilj zmešati te sestavine na zelo specifičen način, tako da že najmanjša sprememba v receptu (na primer dodajanje ene dodatne borovnice) naredi smuti popolnoma drugačen okus. Tako delujejo zgoščevalne funkcije - ustvarijo edinstven "okus" (ali zgoščeno vrednost) za vsak edinstven nabor sestavin (ali vhodnih podatkov).
Algoritem FNV-1 to počne v več korakih:
1. korak: Začnite z osnovo (osnova zamika)
Pomislite na to, kot da bi v mešalnik vlili posebno osnovo za smoothie. Ta osnova je vedno enaka, ne glede na sestavine, ki jih dodate. V FNV-1 se to imenuje "osnova zamika" - samo modna začetna številka.
2. korak: Dodajte sestavine eno za drugo (obdelava podatkov)
Zdaj začnete dodajati svoje sestavine, eno za drugo - recimo jagodo, nato banano, nato nekaj medu. Vsak od teh predstavlja bajt podatkov.
3. korak: Mešajte s tajnim množiteljem (FNV Prime)
Ko dodate vsako sestavino, pritisnete gumb za mešanje, toda tukaj je preobrat: mešalnik vse pomnoži s skrivno "čarobno številko", imenovano FNV prime. To pomaga zelo dobro premešati stvari.
4. korak: Dodajte Dash of Magic (operacija XOR)
Preden dodate naslednjo sestavino, potresete malo čarobnega prahu (to je operacija XOR). To je kot spreminjanje okusa na nepričakovane načine, kar zagotavlja, da že majhne spremembe naredijo veliko razliko.
5. korak: Ponavljajte, dokler ni končano
Po vsaki novi sestavini nadaljujete z mešanjem in škropljenjem čarobnosti, dokler ne obdelate vsega.
6. korak: končni smoothie (zgoščena vrednost)
Ko končate, smoothie odlijete ven. Končni okus (razpršitvena vrednost) je edinstven za točno to kombinacijo sestavin. Če bi dodali še eno borovnico več, bi bil okus popolnoma drugačen.
Tukaj predstavljena različica je izvirna 32-bitna različica FNV-1. Na voljo je tudi izboljšana 32-bitna različica FNV-1a: Kalkulator zgoščene kode Fowler-Noll-Vo FNV1a-32