Miklix

Fowler-Noll-Vo FNV1-64 Hash-kodeberegner

Udgivet: 17. februar 2025 kl. 21.34.26 UTC
Sidst opdateret: 12. januar 2026 kl. 13.26.33 UTC

Hashkodeberegner, der bruger Fowler-Noll-Vo 1 64 bit (FNV1-64) hashfunktionen til at beregne en hashkode baseret på tekstinput eller filupload.

Denne side er blevet maskinoversat fra engelsk for at gøre den tilgængelig for så mange mennesker som muligt. Desværre er maskinoversættelse endnu ikke en perfekt teknologi, så der kan forekomme fejl. Hvis du foretrækker det, kan du se den originale engelske version her:

Fowler-Noll-Vo FNV1-64 Hash Code Calculator

FNV-1 64-bit hashfunktionen er en del af Fowler-Noll-Vo (FNV)-familien af hashfunktioner, der er designet til hurtig hashing, samtidig med at en god fordeling af hashværdier opretholdes. Den bruges almindeligvis i applikationer som hashtabeller, checksummer og dataopslag. Den producerer en 64-bit (8 byte) hashkode, ofte repræsenteret som et 16-cifret hexadecimalt tal.

Fuld åbenhed: Jeg har ikke skrevet den specifikke implementering af den hash-funktion, der bruges på denne side. Det er en standardfunktion, der følger med programmeringssproget PHP. Jeg har kun lavet webgrænsefladen for at gøre den offentligt tilgængelig her for nemheds skyld.


Beregn ny hash-kode

Data, der indsendes, eller filer, der uploades via denne formular, opbevares kun på serveren, så længe det tager at generere den ønskede hashkode. De slettes umiddelbart før resultatet returneres til din browser.

Input-data:



Den indsendte tekst er UTF-8-kodet. Da hashfunktioner opererer med binære data, vil resultatet være anderledes, end hvis teksten var i en anden kodning. Hvis du har brug for at beregne et hash af en tekst i en bestemt kodning, skal du uploade en fil i stedet.



Om Fowler-Noll-Vo FNV-1 64-bit hash-algoritmen

Jeg er ikke matematiker, men jeg vil forsøge at forklare denne hashfunktion ved hjælp af en analogi, som mine ikke-matematikerkolleger kan forstå. Hvis du foretrækker en videnskabeligt korrekt, skræmmende matematikforklaring, er jeg sikker på, at du kan finde den et andet sted ;-)

Lad os først tænke på FNV-1-algoritmen som en opskrift på en særlig smoothie. Hver ingrediens du tilføjer (som frugt, mælk eller honning) repræsenterer et stykke data - som bogstaver, tal eller endda en hel fil.

Målet er nu at blande disse ingredienser på en meget specifik måde, så selv den mindste ændring i opskriften (som at tilføje et ekstra blåbær) får smoothien til at smage helt anderledes. Sådan fungerer hash-funktioner - de skaber en unik "smag" (eller hash-værdi) for hvert unikke sæt af ingredienser (eller inputdata).

Måden FNV-1-algoritmen gør dette på er en proces i flere trin:

Trin 1: Start med en base (offsetbasis)

Tænk på det som at hælde en speciel smoothie-base i din blender. Denne base er altid den samme, uanset hvilke ingredienser du tilsætter. I FNV-1 kaldes dette "offset basis" - bare et smart starttal.

Trin 2: Tilsæt ingredienser én efter én (behandling af data)

Nu begynder du at tilføje dine ingredienser, én ad gangen - lad os sige et jordbær, så en banan og så lidt honning. Hver af disse repræsenterer en byte data.

Trin 3: Bland med en hemmelig multiplikator (FNV Prime)

Efter at have tilsat hver ingrediens, trykker du på blendknappen, men her er twistet: blenderen ganger alt med et hemmeligt "magisk tal" kaldet FNV-primtallet. Dette hjælper med at blende tingene rigtig godt.

Trin 4: Tilføj et strejf af magi (XOR-operation)

Før du tilsætter den næste ingrediens, drysser du lidt magisk støv i (dette er XOR-operationen). Det er som at vende smagen på uventede måder, hvilket sikrer, at selv små ændringer gør en stor forskel.

Trin 5: Gentag indtil færdig

Du bliver ved med at blende og drysse magi efter hver ny ingrediens, indtil du har forarbejdet alt.

Trin 6: Endelig smoothie (hashværdi)

Når du er færdig, hælder du smoothien ud. Den endelige smag (hashværdien) er unik for netop den kombination af ingredienser. Hvis du havde tilføjet bare ét ekstra blåbær, ville det smage helt anderledes.

Den version, der præsenteres her, er den originale FNV-1 64-bit version. Der findes også en forbedret FNV-1a 64-bit version: Link

Yderligere læsning

Hvis du kunne lide dette indlæg, kan du måske også lide disse forslag:


Del på BlueskyDel på FacebookDel på LinkedInDel på TumblrDel på XDel på LinkedInFastgør på Pinterest

Mikkel Christensen

Om forfatteren

Mikkel Christensen
Mikkel er skaberen og ejeren af miklix.com. Han har over 20 års erfaring som professionel computerprogrammør/softwareudvikler og er i øjeblikket fuldtidsansat i en stor europæisk IT-virksomhed. Når han ikke blogger, bruger han sin fritid på en lang række interesser, hobbyer og aktiviteter, som i et vist omfang afspejles i de mange forskellige emner, der dækkes på dette websted.