Miklix

Kalkulator zgoščene kode Fowler-Noll-Vo FNV1a-32

Objavljeno: 18. februar 2025 ob 12:09:53 dop. UTC

Kalkulator zgoščevalne kode, ki uporablja zgoščevalno funkcijo Fowler-Noll-Vo 1a 32 bit (FNV1a-32) za izračun zgoščevalne kode na podlagi vnosa besedila ali nalaganja datoteke.

Ta stran je bila strojno prevedena iz angleščine, da bi bila dostopna čim večjemu številu ljudi. Žal strojno prevajanje še ni popolna tehnologija, zato lahko pride do napak. Če želite, si lahko izvirno angleško različico ogledate tukaj:

Fowler-Noll-Vo FNV1a-32 Hash Code Calculator

32-bitna zgoščevalna funkcija FNV-1a 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.

Različica FNV-1a je izboljšana različica prvotne funkcije FNV-1 z boljšo varnostjo.

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.


Izračunajte novo koda Hash

Podatki, poslani prek tega obrazca, ali datoteke, naložene prek tega obrazca, bodo v strežniku shranjeni le toliko časa, kolikor je potrebno za generiranje zahtevane kode hash. Izbrisani bodo takoj, preden se rezultat vrne v vaš brskalnik.

Vhodni podatki:



Poslano besedilo je kodirano v UTF-8. Ker funkcije hash delujejo na binarnih podatkih, bo rezultat drugačen, kot če bi bilo besedilo v drugem kodiranju. Če morate izračunati hash besedila v določenem kodiranju, morate namesto tega naložiti datoteko.



O 32-bitnem zgoščevalnem algoritmu Fowler-Noll-Vo FNV-1a

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 svoj 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 izboljšana 32-bitna različica FNV-1a. Če potrebujete originalno različico, imam tudi za to kalkulator: Kalkulator zgoščene kode Fowler-Noll-Vo FNV1-32

Delite na BlueskyDelite na FacebookuDelite na LinkedInuDelite na TumblrDelite na XDelite na LinkedInuPripni na Pinterest

Mikkel Bang Christensen

O avtorju

Mikkel Bang Christensen
Mikkel je avtor in lastnik spletne strani miklix.com. Ima več kot 20 let izkušenj kot profesionalni računalniški programer/razvijalec programske opreme in je trenutno za polni delovni čas zaposlen v veliki evropski IT korporaciji. Kadar ne piše bloga, svoj prosti čas posveča številnim interesom, hobijem in dejavnostim, kar se do neke mere odraža v raznolikosti tem na tem spletnem mestu.