MurmurHash3A Hashcodecalculator
Gepubliceerd: 18 februari 2025 om 00:39:27 UTC
Hashcodecalculator die de MurmurHash3A-hashfunctie gebruikt om een hashcode te berekenen op basis van tekstinvoer of geüpload bestand.MurmurHash3A Hash Code Calculator
MurmurHash3 is een niet-cryptografische hashfunctie die in 2008 door Austin Appleby is ontworpen. Het wordt veel gebruikt voor algemene hashing vanwege de snelheid, eenvoud en goede distributie-eigenschappen. MurmurHash-functies zijn met name effectief voor hash-gebaseerde datastructuren zoals hashtabellen, bloomfilters en datadeduplicatiesystemen.
De variant die op deze pagina wordt gepresenteerd is de 3A-variant, die is geoptimaliseerd voor 32-bits systemen. Het produceert 32-bits (4-bytes) hashcodes, die doorgaans worden weergegeven als een hexadecimaal getal van 8 cijfers.
Full disclosure: Ik heb de specifieke implementatie van de hashfunctie die op deze pagina wordt gebruikt niet geschreven. Het is een standaardfunctie die wordt meegeleverd met de programmeertaal PHP. Ik heb alleen de webinterface gemaakt om hem hier voor het gemak publiekelijk beschikbaar te maken.
Over het MurmurHash3A-hashalgoritme
Ik ben geen wiskundige, maar ik zal proberen deze hashfunctie uit te leggen met behulp van een analogie die mijn mede-niet-wiskundigen kunnen begrijpen. Als u de voorkeur geeft aan een wetenschappelijk correcte, volledige wiskundige uitleg, dan weet ik zeker dat u die elders kunt vinden ;-)
Stel je nu voor dat je een grote doos met LEGO-stenen hebt. Elke keer dat je ze op een bepaalde manier rangschikt, maak je een foto. Hoe groot of kleurrijk de opstelling ook is, de camera geeft je altijd een kleine foto van een vast formaat. Die foto vertegenwoordigt jouw LEGO-creatie, maar dan in een compacte vorm.
MurmurHash3 doet iets soortgelijks met data. Het neemt elk soort data (tekst, getallen, bestanden) en krimpt het tot een kleine, vaste "vingerafdruk" of hashwaarde. Deze vingerafdruk helpt computers om data snel te identificeren, sorteren en vergelijken zonder naar het geheel te hoeven kijken.
Een andere analogie zou zijn als het bakken van een cake en MurmurHash3 is het recept om die cake om te toveren in een kleine cupcake (de hasj). Dit zou een proces van drie stappen zijn:
Stap 1: In stukken hakken (de gegevens opsplitsen)
- Eerst verdeelt MurmurHash3 uw gegevens in gelijke stukken, alsof u een taart in gelijke vierkanten snijdt.
Stap 2: Meng als een gek (de stukken mengen)
- Elk stuk ondergaat een wild mixproces:
- Flipping: Net als bij het omdraaien van een pannenkoek worden de stukjes opnieuw gerangschikt.
- Roeren: Voeg willekeurige ingrediënten toe (wiskundige bewerkingen) om de boel te mengen.
- Squishing: De gegevens worden samengedrukt zodat geen enkel origineel stukje meer opvalt.
Stap 3: Laatste smaaktest (afronding)
- Nadat alle stukjes zijn gemengd, roert MurmurHash3 het geheel nog een keer door om er zeker van te zijn dat zelfs de kleinste kruimel verandering in de oorspronkelijke gegevens de smaak (de hasj) compleet verandert.