Miklix

MurmurHash3C Hashkodekalkulator

Publisert: 18. februar 2025 kl. 00:34:11 UTC

Hash-kodekalkulator som bruker MurmurHash3C-hash-funksjonen til å beregne en hashkode basert på tekstinntasting eller filopplasting.

Denne siden er maskinoversatt fra engelsk for å gjøre den tilgjengelig for så mange som mulig. Dessverre er maskinoversettelse ennå ikke en fullkommen teknologi, så det kan forekomme feil. Hvis du foretrekker det, kan du se den engelske originalversjonen her:

MurmurHash3C Hash Code Calculator

MurmurHash3 er en ikke-kryptografisk hash-funksjon designet av Austin Appleby i 2008. Den er mye brukt for generell hashing på grunn av sin hastighet, enkelhet og gode distribusjonsegenskaper. MurmurHash-funksjoner er spesielt effektive for hash-baserte datastrukturer som hashtabeller, bloom-filtre og datadedupliseringssystemer.

Varianten som presenteres på denne siden er 3C-varianten, som er optimalisert for 32-bits systemer, på samme måte som 3A-varianten. I motsetning til 3A-varianten produserer den imidlertid 128-biters (16 byte) hash-koder, vanligvis representert som et 32-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.


Beregn ny hash-kode

Data som sendes inn eller filer som lastes opp via dette skjemaet, vil bare bli lagret på serveren så lenge det tar å generere den forespurte hash-koden. De slettes umiddelbart før resultatet returneres til nettleseren din.

Inndata:



Innsendt tekst er UTF-8-kodet. Siden hashfunksjoner opererer på binære data, vil resultatet bli annerledes enn om teksten hadde vært i en annen koding. Hvis du trenger å beregne en hash av en tekst i en bestemt koding, bør du laste opp en fil i stedet.



Om MurmurHash3C 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, fullstendig matematisk forklaring, er jeg sikker på at du kan finne den andre steder ;-)

Tenk deg nå at du har en stor boks med LEGO-klosser. Hver gang du arrangerer dem på en bestemt måte, tar du et bilde. Uansett hvor stort eller fargerikt arrangementet er, gir kameraet deg alltid et lite bilde i fast størrelse. Det bildet representerer LEGO-skapelsen din, men i en kompakt form.

MurmurHash3 gjør noe lignende med data. Den tar alle slags data (tekst, tall, filer) og krymper dem ned til et lite, fast "fingeravtrykk" eller hash-verdi. Dette fingeravtrykket hjelper datamaskiner raskt å identifisere, sortere og sammenligne data uten å måtte se på hele greia.

En annen analogi vil være som å bake en kake, og MurmurHash3 er oppskriften på å gjøre den kaken om til en liten cupcake (hash). Dette vil være en tre-trinns prosess:

Trinn 1: Hakk i stykker (bryt dataene)

  • Først deler MurmurHash3 dataene dine i like store biter, som å kutte kaken i jevne firkanter.

Trinn 2: Mix Like Crazy (Mixing the Chunks)

  • Hver del går gjennom en vill blandingsprosess:
    • Vende: Som å snu en pannekake, omorganiserer den bitene.
    • Omrøring: Legger til tilfeldige ingredienser (matematiske operasjoner) for å blande ting.
    • Squishing: Presser dataene sammen for å sikre at ingen originaldel skiller seg ut.

Trinn 3: Endelig smakstest (avslutning)

  • Etter å ha blandet alle bitene, gir MurmurHash3 den en siste omrøring for å sikre at selv den minste smule av endring i de originale dataene totalt endrer smaken (hashen).

Del på BlueskyDel på FacebookDel på LinkedInDel på TumblrDel på XDel på LinkedInFest på Pinterest

Mikkel Bang Christensen

Om forfatteren

Mikkel Bang Christensen
Mikkel er skaperen og eieren av miklix.com. Han har over 20 års erfaring som profesjonell dataprogrammerer/programvareutvikler og er for tiden ansatt på fulltid i et stort europeisk IT-selskap. Når han ikke blogger, bruker han fritiden sin på en lang rekke interesser, hobbyer og aktiviteter, noe som til en viss grad kan gjenspeiles i de mange ulike temaene som dekkes på dette nettstedet.