Miklix

Kalkulator zgoščene kode Fowler-Noll-Vo FNV1-64

Objavljeno: 17. februar 2025 ob 9:35:14 pop. UTC
Nazadnje posodobljeno: 12. januar 2026 ob 1:26:46 pop. UTC

Kalkulator zgoščevalne kode, ki uporablja zgoščevalno funkcijo Fowler-Noll-Vo 1 64 bit (FNV1-64) 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 FNV1-64 Hash Code Calculator

64-bitna zgoščevalna funkcija FNV-1 je del družine zgoščevalnih funkcij Fowler-Noll-Vo (FNV), zasnovanih za hitro zgoščevanje ob hkratnem ohranjanju dobre porazdelitve zgoščevalnih vrednosti. Pogosto se uporablja v aplikacijah, kot so zgoščevalne tabele, kontrolne vsote in iskanje podatkov. Ustvari 64-bitno (8-bajtno) zgoščevalno kodo, pogosto predstavljeno kot 16-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.


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 64-bitnem algoritmu zgoščevanja Fowler-Noll-Vo FNV-1

Nisem matematik, vendar bom poskušal razložiti to zgoščevalno funkcijo z analogijo, ki jo lahko razumejo moji kolegi nematematičarji. Če imate raje znanstveno pravilno, strašljivo matematično razlago, jo boste zagotovo našli drugje ;-)

Najprej si predstavljajmo algoritem FNV-1 kot recept za pripravo posebnega smutija. Vsaka sestavina, ki jo dodate (kot so sadje, mleko ali med), predstavlja del podatka – na primer črke, številke ali celo celotno datoteko.

Cilj je zdaj te sestavine zmešati na zelo specifičen način, tako da že najmanjša sprememba v receptu (kot je dodajanje ene dodatne borovnice) naredi okus smoothieja popolnoma drugačen. Tako delujejo zgoščevalne funkcije – ustvarijo edinstven »okus« (ali zgoščevalno vrednost) za vsak edinstven nabor sestavin (ali vhodnih podatkov).

Algoritem FNV-1 to počne v več korakih:

1. korak: Začnite z osnovo (odmaknjena osnova)

Predstavljajte si to kot vlivanje posebne osnove za smoothie v mešalnik. Ta osnova je vedno enaka, ne glede na to, katere sestavine dodate. V FNV-1 se to imenuje "offset basis" – le domiselna začetna številka.

2. korak: Dodajanje sestavin eno za drugo (obdelava podatkov)

Sedaj začnete dodajati sestavine, eno za drugo – recimo jagodo, nato banano in nato nekaj medu. Vsaka od teh predstavlja bajt podatkov.

3. korak: Mešanje s skrivnim multiplikatorjem (FNV Prime)

Ko dodate vsako sestavino, pritisnete gumb za mešanje, vendar je tukaj preobrat: mešalnik vse skupaj pomnoži s skrivnim "čarobnim številom", imenovanim FNV praštevilo. To pomaga, da se stvari res dobro premešajo.

4. korak: Dodajte kanček magije (operacija XOR)

Preden dodate naslednjo sestavino, potresete z malo čarobnega prahu (to je operacija XOR). To je kot nepričakovano spreminjanje okusa, saj zagotavlja, da že majhne spremembe naredijo veliko razliko.

5. korak: Ponavljajte, dokler ne končate

Po vsaki novi sestavini mešaš in posipaš čarobne dodatke, dokler ne predelaš vsega.

6. korak: Končni smoothie (Hash vrednost)

Ko končate, smoothie prelijete. Končni okus (vrednost hash-a) je edinstven za to natančno kombinacijo sestavin. Če bi dodali še samo eno borovnico, bi bil okus popolnoma drugačen.

Različica, predstavljena tukaj, je originalna 64-bitna različica FNV-1. Na voljo je tudi izboljšana 64-bitna različica FNV-1a: Povezava

Nadaljnje branje

Če vam je bila ta objava všeč, vam bodo morda všeč tudi ti predlogi:


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

Mikkel Christensen

O avtorju

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