Fowler-Noll-Vo FNV1-64 Hash-kodekalkulator
Publisert: 17. februar 2025 kl. 21:34:58 UTC
Hash-kodekalkulator som bruker Fowler-Noll-Vo 1 64 bit (FNV1-64) hashfunksjon for å beregne en hashkode basert på tekstinntasting eller filopplasting.Fowler-Noll-Vo FNV1-64 Hash Code Calculator
FNV-1 64-bits hash-funksjonen er en del av Fowler–Noll–Vo (FNV)-familien av hash-funksjoner, designet for rask hash samtidig som den opprettholder en god distribusjon av hashverdier. Det brukes ofte i applikasjoner som hashtabeller, sjekksummer og dataoppslag. Den produserer en 64-biters (8 byte) hash-kode, ofte representert som et 16-sifret heksadesimalt tall.
Full åpenhet: Jeg har ikke skrevet den spesifikke implementasjonen av hash-funksjonen som brukes på denne siden. Det er en standardfunksjon som følger med programmeringsspråket PHP. Jeg har bare laget webgrensesnittet for å gjøre den offentlig tilgjengelig her for enkelhets skyld.
Om Fowler-Noll-Vo FNV-1 64 bit Hash Algorithm
Jeg er ingen matematiker, men jeg skal prøve å forklare denne hash-funksjonen ved å bruke en analogi som mine andre ikke-matematikere kan forstå. Hvis du foretrekker en vitenskapelig korrekt, skummel-matematisk forklaring, er jeg sikker på at du kan finne den andre steder ;-)
La oss først tenke på FNV-1-algoritmen som en oppskrift for å lage en spesiell smoothie. Hver ingrediens du legger til (som frukt, melk eller honning) representerer et stykke data - som bokstaver, tall eller til og med en hel fil.
Nå er målet å blande disse ingrediensene på en veldig spesifikk måte slik at selv den minste endringen i oppskriften (som å legge til ett ekstra blåbær) gjør at smoothien smaker helt annerledes. Det er slik hashfunksjoner fungerer – de skaper en unik "smak" (eller hashverdi) for hvert unike sett med ingredienser (eller inndata).
Måten FNV-1-algoritmen gjør dette på er en flertrinnsprosess:
Trinn 1: Start med en base (offset basis)
Tenk på dette som å helle en spesiell smoothiebunn i blenderen din. Denne basen er alltid den samme, uansett hvilke ingredienser du tilsetter. I FNV-1 kalles dette "offset basis" - bare et fancy startnummer.
Trinn 2: Legg til ingredienser én etter én (behandling av data)
Nå begynner du å tilsette ingrediensene dine, én om gangen – la oss si et jordbær, så en banan, så litt honning. Hver av disse representerer en byte med data.
Trinn 3: Bland med en hemmelig multiplikator (FNV Prime)
Etter å ha tilsatt hver ingrediens, trykker du på blend-knappen, men her er vrien: blenderen multipliserer alt med et hemmelig "magisk tall" kalt FNV-primtallet. Dette hjelper til å blande ting veldig godt.
Trinn 4: Legg til en Dash of Magic (XOR Operation)
Før du tilsetter neste ingrediens, drysser du inn litt magisk støv (dette er XOR-operasjonen). Det er som å snu smaken på uventede måter, og sikre at selv små endringer utgjør en stor forskjell.
Trinn 5: Gjenta til ferdig
Du fortsetter å blande og drysse magi etter hver nye ingrediens til du har behandlet alt.
Trinn 6: Endelig smoothie (hash-verdi)
Når du er ferdig heller du ut smoothien. Den endelige smaken (hash-verdien) er unik for den eksakte kombinasjonen av ingredienser. Hvis du hadde tilsatt enda et ekstra blåbær, ville det smakt helt annerledes.
Versjonen som presenteres her er den originale FNV-1 64-biters versjonen. Det er også en forbedret FNV-1a 64 bit versjon tilgjengelig: Fowler-Noll-Vo FNV1a-64 Hash-kodekalkulator