Miklix

Fowler-Noll-Vo FNV1-64 Hash-kodeberegner

Udgivet: 17. februar 2025 kl. 21.34.26 UTC

Hash-kodeberegner, der bruger Fowler-Noll-Vo 1 64 bit (FNV1-64) hash-funktion 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 hash-funktionen er en del af Fowler-Noll-Vo (FNV) familien af ​​hash-funktioner, designet til hurtig hash og samtidig opretholde en god fordeling af hash-værdier. Det bruges almindeligvis i applikationer som hashtabeller, kontrolsummer og dataopslag. Den producerer en 64 bit (8 byte) hash-kode, 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 Algorithm

Jeg er ikke matematiker, men jeg vil prøve at forklare denne hash-funktion ved hjælp af en analogi, som mine andre ikke-matematikere kan forstå. Hvis du foretrækker en videnskabelig korrekt, skræmmende matematisk forklaring, er jeg sikker på, at du kan finde den andre steder ;-)

Lad os først tænke på FNV-1-algoritmen som en opskrift på at lave en speciel 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.

Nu er målet 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. Det er sådan hash-funktioner fungerer - de skaber en unik "smag" (eller hashværdi) for hvert unikt sæt ingredienser (eller inputdata).

Måden FNV-1-algoritmen gør dette på er en flertrinsproces:

Trin 1: Start med en base (offset basis)

Tænk på dette som at hælde en speciel smoothiebase i din blender. Denne base er altid den samme, uanset hvilke ingredienser du tilføjer. I FNV-1 kaldes dette "offset basis" - bare et fancy startnummer.

Trin 2: Tilføj 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, så lidt honning. Hver af disse repræsenterer en byte af data.

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

Efter at have tilføjet hver ingrediens, trykker du på blend-knappen, men her er twist: blenderen multiplicerer alt med et hemmeligt "magisk tal" kaldet FNV-primtal. Dette hjælper med at blande tingene rigtig godt sammen.

Trin 4: Tilføj en Dash of Magic (XOR Operation)

Inden du tilføjer den næste ingrediens, drysser du lidt tryllestøv i (dette er XOR-operationen). Det er som at vende smagen på uventede måder og sikre, 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 behandlet 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 den nøjagtige kombination af ingredienser. Hvis du havde tilføjet blot et ekstra blåbær, ville det smage helt anderledes.

Den version, der præsenteres her, er den originale FNV-1 64 bit version. Der er også en forbedret FNV-1a 64 bit version tilgængelig: Fowler-Noll-Vo FNV1a-64 Hash-kodeberegner

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

Mikkel Bang Christensen

Om forfatteren

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