Miklix

MurmurHash3A Hash-kodeberegner

Udgivet: 18. februar 2025 kl. 00.39.03 UTC

Hash-kodeberegner, der bruger MurmurHash3A-hash-funktionen 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:

MurmurHash3A Hash Code Calculator

MurmurHash3 er en ikke-kryptografisk hash-funktion designet af Austin Appleby i 2008. Den er meget udbredt til hashing til generelle formål på grund af dens hastighed, enkelhed og gode distributionsegenskaber. MurmurHash-funktioner er særligt effektive til hash-baserede datastrukturer som hashtabeller, bloomfiltre og datadeduplikeringssystemer.

Varianten præsenteret på denne side er 3A varianten, som er optimeret til 32 bit systemer. Den producerer 32 bit (4 byte) hash-koder, typisk repræsenteret som et 8-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 MurmurHash3A Hash-algoritmen

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 videnskabeligt korrekt, komplet matematisk forklaring, er jeg sikker på, at du kan finde den andre steder ;-)

Forestil dig nu, at du har en stor kasse med LEGO klodser. Hver gang du arrangerer dem på en bestemt måde, tager du et billede. Uanset hvor stort eller farverigt arrangementet er, giver kameraet dig altid et lille billede i fast størrelse. Det billede repræsenterer din LEGO-kreation, men i en kompakt form.

MurmurHash3 gør noget lignende med data. Det tager enhver form for data (tekst, tal, filer) og krymper det ned til et lille, fast "fingeraftryk" eller hashværdi. Dette fingeraftryk hjælper computere med hurtigt at identificere, sortere og sammenligne data uden at skulle se på det hele.

En anden analogi ville være som at bage en kage, og MurmurHash3 er opskriften på at forvandle den kage til en lille cupcake (hash). Dette ville være en tre-trins proces:

Trin 1: Hak i stykker (bryde dataene)

  • Først skærer MurmurHash3 dine data i lige store bidder, som at skære kagen i lige firkanter.

Trin 2: Mix Like Crazy (Mixing the Chunks)

  • Hvert stykke gennemgår en vild blandingsproces:
    • Vende: Ligesom at vende en pandekage, omarrangerer den stykkerne.
    • Omrøring: Tilføjer tilfældige ingredienser (matematiske operationer) for at blande tingene sammen.
    • Squishing: Presser dataene sammen for at sikre, at intet originalt stykke skiller sig ud.

Trin 3: Endelig smagstest (afslutning)

  • Efter at have blandet alle bidderne, giver MurmurHash3 det en sidste omrøring for at sikre, at selv den mindste smule af ændring i de originale data totalt ville ændre smagen (hash).
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.