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