MurmurHash3C Hashkodekalkulator
Publisert: 18. februar 2025 kl. 00:34:11 UTC
Sist oppdatert: 13. september 2025 kl. 22:52:55 UTC
MurmurHash3C Hash Code Calculator
MurmurHash3 er en ikke-kryptografisk hash-funksjon designet av Austin Appleby i 2008. Den er mye brukt til generell hashing på grunn av hastigheten, enkelheten og gode distribusjonsegenskapene. MurmurHash-funksjoner er spesielt effektive for hash-baserte datastrukturer som hash-tabeller, bloom-filtre og datadedupliseringssystemer.
Varianten som presenteres på denne siden er 3C-varianten, som er optimalisert for 32-bits systemer, samme 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.
Om MurmurHash3C Hash-algoritmen
Jeg er ikke matematiker, men jeg skal prøve å forklare denne hash-funksjonen ved hjelp av en analogi som mine med-ikke-matematikere kan forstå. Hvis du foretrekker en vitenskapelig korrekt, fullstendig matematisk forklaring, er jeg sikker på at du kan finne det andre steder ;-)
Tenk deg at du har en stor eske med LEGO klosser. Hver gang du ordner 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 kreasjonen 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 en liten, fast "fingeravtrykk" eller hash-verdi. Dette fingeravtrykket hjelper datamaskiner raskt å identifisere, sortere og sammenligne data uten å måtte se på det hele.
En annen analogi ville være som å bake en kake og MurmurHash3 er oppskriften for å gjøre den kaken om til en liten cupcake (hasj). Dette vil være en tretrinnsprosess:
Trinn 1: Hakk i biter (bryt dataene)
- Først deler MurmurHash3 dataene dine i like store biter, som å kutte kaken i jevne firkanter.
Trinn 2: Bland som en gal (bland bitene)
- Hvert stykke går gjennom en vill blandingsprosess:
- Vending: Som å snu en pannekake, omorganiserer den bitene.
- Røring: Legger til tilfeldige ingredienser (matematiske operasjoner) for å blande ting sammen.
- Klemming: Presser dataene sammen for å sikre at ingen originale deler skiller seg ut.
Trinn 3: Endelig smakstest (ferdigstillelse)
- Etter å ha blandet alle bitene, gir MurmurHash3 den en siste røre for å sikre at selv den minste smulen av endring i de originale dataene vil endre smaken (hashen).
Videre lesing
Hvis du likte dette innlegget, kan du også like disse forslagene: