Miklix

Kalkulačka hash kódu MurmurHash3C

Vydáno: 18. února 2025 v 0:33:51 UTC

Kalkulačka hash kódu, která používá funkci MurmurHash3C hash k výpočtu hash kódu na základě zadání textu nebo nahrání souboru.

Tato stránka byla strojově přeložena z angličtiny, aby byla přístupná co největšímu počtu lidí. Strojový překlad bohužel ještě není dokonalá technologie, takže může dojít k chybám. Pokud si přejete, můžete si prohlédnout původní anglickou verzi zde:

MurmurHash3C Hash Code Calculator

MurmurHash3 je nekryptografická hašovací funkce navržená Austinem Applebym v roce 2008. Je široce používána pro univerzální hašování díky své rychlosti, jednoduchosti a dobrým distribučním vlastnostem. Funkce MurmurHash jsou zvláště účinné pro datové struktury založené na hash, jako jsou hashovací tabulky, filtry květů a systémy deduplikace dat.

Varianta prezentovaná na této stránce je varianta 3C, která je optimalizována pro 32bitové systémy, stejně jako varianta 3A. Na rozdíl od varianty 3A však vytváří 128bitové (16bajtové) hash kódy, typicky reprezentované jako 32místné hexadecimální číslo.

Plné odhalení: konkrétní implementaci hashovací funkce použité na této stránce jsem nenapsal. Jedná se o standardní funkci, která je součástí programovacího jazyka PHP. Vytvořil jsem pouze webové rozhraní, abych ji zde pro pohodlí zpřístupnil veřejnosti.


Výpočet nového kódu Hash

Data odeslaná nebo soubory nahrané prostřednictvím tohoto formuláře budou na serveru uchovávány pouze po dobu potřebnou k vygenerování požadovaného hash kódu. Budou smazány bezprostředně předtím, než se výsledek vrátí do prohlížeče.

Vstupní data:



Odeslaný text je kódován v UTF-8. Vzhledem k tomu, že hashovací funkce pracují s binárními daty, bude výsledek jiný, než kdyby byl text v jiném kódování. Pokud potřebujete vypočítat hash textu v konkrétním kódování, měli byste místo toho nahrát soubor.



O algoritmu MurmurHash3C Hash

Nejsem matematik, ale pokusím se vysvětlit tuto hašovací funkci pomocí analogie, které moji kolegové nematematici rozumí. Pokud dáváte přednost vědecky správnému, úplnému matematickému vysvětlení, jsem si jistý, že to najdete jinde ;-)

Nyní si představte, že máte velkou krabici LEGO kostek. Pokaždé, když je uspořádáte konkrétním způsobem, vyfotíte. Bez ohledu na to, jak velké nebo barevné uspořádání je, fotoaparát vám vždy poskytne malou fotografii pevné velikosti. Tato fotografie představuje váš výtvor LEGO, ale v kompaktní podobě.

MurmurHash3 dělá něco podobného s daty. Vezme jakýkoli druh dat (text, čísla, soubory) a zmenší je na malý pevný „otisk“ nebo hodnotu hash. Tento otisk pomáhá počítačům rychle identifikovat, třídit a porovnávat data, aniž by se musely dívat na celou věc.

Další analogie by byla jako upéct dort a MurmurHash3 je recept, jak z tohoto dortu udělat malý košíček (hash). Toto by byl proces ve třech krocích:

Krok 1: Nakrájejte na kousky (rozbití dat)

  • Za prvé, MurmurHash3 nakrájí vaše data na stejné části, jako je krájení koláče na stejné čtverce.

Krok 2: Míchejte jako blázni (Míchání kousků)

  • Každý kus prochází divokým procesem míchání:
    • Překlápění: Stejně jako při převracení palačinky se mění uspořádání bitů.
    • Míchání: Přidá náhodné přísady (matematické operace), aby se věci promíchaly.
    • Squishing: Stlačí data k sobě, aby se ujistil, že žádný originální kus nevyčnívá.

Krok 3: Závěrečný test chuti (finalizace)

  • Po smíchání všech kousků MurmurHash3 ještě jednou zamíchá, aby se zajistilo, že i ten nejmenší drobek změny v původních datech zcela změní chuť (hash).

Sdílet na BlueskySdílejte na FacebookuSdílet na LinkedInSdílet na TumblrSdílet na XSdílet na LinkedInPřipnout na Pinterest

Mikkel Bang Christensen

O autorovi

Mikkel Bang Christensen
Mikkel je tvůrcem a majitelem webu miklix.com. Má více než 20 let zkušeností jako profesionální programátor/vývojář softwaru a v současné době pracuje na plný úvazek pro velkou evropskou IT společnost. Pokud zrovna nepíše blog, věnuje svůj volný čas široké škále zájmů, koníčků a aktivit, což se může do jisté míry odrážet v rozmanitosti témat na tomto webu.