MurmurHash3A Hash-koodilaskin
Julkaistu: 18. helmikuuta 2025 klo 0.39.11 UTC
Viimeksi päivitetty: 12. tammikuuta 2026 klo 13.33.02 UTC
MurmurHash3A Hash Code Calculator
MurmurHash3 on Austin Applebyn vuonna 2008 suunnittelema ei-kryptografinen hajautusfunktio. Sitä käytetään laajalti yleiskäyttöön tarkoitetussa hajautuksessa sen nopeuden, yksinkertaisuuden ja hyvien jakeluominaisuuksien ansiosta. MurmurHash-funktiot ovat erityisen tehokkaita hajautuspohjaisissa tietorakenteissa, kuten hajautustaulukoissa, bloom-suodattimissa ja datan deduplikaatiojärjestelmissä.
Tällä sivulla esitetty variantti on 3A-variantti, joka on optimoitu 32-bittisille järjestelmille. Se tuottaa 32-bittisiä (4 tavua) hajautuskoodeja, jotka tyypillisesti esitetään 8-numeroisena heksadesimaalilukuna.
Täydellinen paljastus: en ole kirjoittanut tällä sivulla käytetyn hash-funktion toteutusta. Se on PHP-ohjelmointikielen mukana tuleva vakiofunktio. Tein vain web-käyttöliittymän, jotta se olisi julkisesti saatavilla täällä.
Tietoja MurmurHash3A-hajautusalgoritmista
En ole matemaatikko, mutta yritän selittää tämän tiivistefunktion analogialla, jonka muut kuin matemaatikot ymmärtävät. Jos haluat tieteellisesti oikean ja täysin matemaattisen selityksen, olen varma, että löydät sen muualta ;-)
Kuvittele nyt, että sinulla on iso laatikko LEGO-palikoita. Joka kerta, kun järjestelet ne tietyllä tavalla, otat kuvan. Olipa asetelma kuinka suuri tai värikäs tahansa, kamera antaa aina pienen, kiinteän kokoisen kuvan. Tämä kuva edustaa LEGO-luomustasi, mutta kompaktissa muodossa.
MurmurHash3 tekee jotain vastaavaa datan kanssa. Se ottaa minkä tahansa tyyppistä dataa (tekstiä, numeroita, tiedostoja) ja kutistaa sen pieneksi, kiinteäksi "sormenjäljeksi" eli hash-arvoksi. Tämä sormenjälki auttaa tietokoneita tunnistamaan, lajittelemaan ja vertailemaan dataa nopeasti ilman, että niiden tarvitsee tarkastella koko dataa.
Toinen analogia olisi kuin leivottaisiin kakku ja MurmurHash3 olisi resepti, jolla kakusta tehdään pieni kuppikakku (hash). Tämä olisi kolmivaiheinen prosessi:
Vaihe 1: Pilko palasiksi (tietojen purkaminen)
- Ensin MurmurHash3 pilkkoo datasi yhtä suuriksi paloiksi, kuten kakun leikkaamisen tasaisiksi neliöiksi.
Vaihe 2: Sekoita hullun lailla (palojen sekoittaminen)
- Jokainen pala käy läpi villin sekoitusprosessin:Kääntäminen: Kuten pannukakun kääntäminen, se järjestää palat uudelleen.Sekoitus: Lisää satunnaisia ainesosia (matemaattisia operaatioita) sekoittaakseen asioita.Litistäminen: Puristaa tiedot yhteen varmistaakseen, ettei mikään alkuperäinen pala erotu joukosta.
Vaihe 3: Viimeinen makutesti (viimeistely)
- Sekoitettuaan kaikki palat MurmurHash3 sekoittaa ne vielä kerran varmistaakseen, että pieninkin muutos alkuperäisessä datassa muuttaa maun (hasiksen) täysin.
Lisälukemista
Jos pidit tästä postauksesta, saatat pitää myös näistä ehdotuksista:
