MurmurHash3C Hash-koodilaskin
Julkaistu: 18. helmikuuta 2025 klo 0.33.57 UTC
Hash-koodilaskin, joka käyttää MurmurHash3C hash-funktiota hash-koodin laskemiseen tekstin syöttämisen tai tiedoston lataamisen perusteella.MurmurHash3C Hash Code Calculator
MurmurHash3 on Austin Applebyn vuonna 2008 suunnittelema ei-salauksellinen hajautusfunktio. Sitä käytetään laajalti yleiskäyttöiseen hajautustoimintoon sen nopeuden, yksinkertaisuuden ja hyvien jakeluominaisuuksien ansiosta. MurmurHash-funktiot ovat erityisen tehokkaita hajautuspohjaisissa tietorakenteissa, kuten hash-taulukoissa, bloom-suodattimissa ja tietojen duplikointijärjestelmissä.
Tällä sivulla esitetty variantti on 3C-versio, joka on optimoitu 32-bittisille järjestelmille, sama kuin 3A-versio. Toisin kuin 3A-versio, se tuottaa 128-bittisiä (16-tavuisia) hash-koodeja, jotka esitetään tyypillisesti 32-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 MurmurHash3C Hash-algoritmista
En ole matemaatikko, mutta yritän selittää tämän hash-funktion käyttämällä analogiaa, jonka muut kuin matemaatikot voivat ymmärtää. Jos pidät tieteellisesti oikeasta, kattavasta matemaattisesta selityksestä, löydät sen varmasti muualta ;-)
Kuvittele nyt, että sinulla on iso laatikko LEGO-palikoita. Aina kun järjestät ne tietyllä tavalla, otat kuvan. Riippumatta siitä, kuinka suuri tai värikäs järjestely on, kamera antaa aina pienen, kiinteän kokoisen valokuvan. Tämä kuva edustaa LEGO-luomustasi, mutta kompaktissa muodossa.
MurmurHash3 tekee jotain vastaavaa datan kanssa. Se ottaa kaikenlaista dataa (tekstiä, numeroita, tiedostoja) ja kutistaa sen pieneen, kiinteään "sormenjälki" tai hash-arvoon. Tämä sormenjälki auttaa tietokoneita tunnistamaan, lajittelemaan ja vertailemaan tietoja nopeasti ilman, että sinun tarvitsee tarkastella koko asiaa.
Toinen analogia olisi kakun leipominen, ja MurmurHash3 on resepti, jolla siitä kakusta tulee pieni cupcake (hash). Tämä olisi kolmivaiheinen prosessi:
Vaihe 1: Leikkaa paloiksi (tietojen hajottaminen)
- Ensin MurmurHash3 viipaloi tietosi yhtä suuriksi paloiksi, kuten leikkaa kakun tasaisiksi neliöiksi.
Vaihe 2: Sekoita kuin hullu (palojen sekoittaminen)
- Jokainen pala käy läpi villin sekoitusprosessin:
- Kääntäminen: Kuten pannukakun kääntäminen, se järjestää palat uudelleen.
- Sekoittaminen: Lisää satunnaisia ainesosia (matemaattisia operaatioita) sekoittaakseen asioita.
- Puristaminen: Puristaa tiedot yhteen varmistaakseen, ettei mikään alkuperäinen osa erotu.
Vaihe 3: Lopullinen makutesti (viimeistely)
- Kun kaikki palaset on sekoitettu, MurmurHash3 sekoittaa sen vielä viimeisen kerran varmistaakseen, että pieninkin muutosmurska alkuperäisessä tiedossa muuttaa makua (hashin) täysin.