Miklix

CRC-32B Kalkulačka hash kódu

Vydáno: 17. února 2025 v 18:23:16 UTC

Kalkulačka hash kódu, která používá hashovací funkci CRC-32B (Cyclic Redundancy Check 32 bit, varianta B) 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:

CRC-32B Hash Code Calculator

Cyclic Redundancy Check (CRC) je kód pro detekci chyb běžně používaný k detekci náhodných změn v nezpracovaných datech. I když technicky nejde o kryptografickou hashovací funkci, CRC-32 je často označován jako hash kvůli své schopnosti produkovat výstup s pevnou velikostí (32 bitů) ze vstupu s proměnnou délkou. Verze prezentovaná na této stránce je varianta CRC-32B, což je ve skutečnosti jen vtípek v jazyce PHP, který převrací bity (little-endian vs big-endian v originále CRC-32).

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 hashovacím algoritmu CRC-32B

Nejsem matematik, ale pokusím se tuto hashovací funkci vysvětlit jednoduchou analogií. Na rozdíl od mnoha kryptografických hašovacích funkcí to není nijak zvlášť složitý algoritmus, takže to asi bude v pořádku ;-)

Představte si, že posíláte dopis poštou, ale bojíte se, že by se mohl poškodit, než dorazí k příjemci. Na základě obsahu dopisu vypočítáte kontrolní součet CRC-32 a napíšete jej na obálku. Když příjemce obdrží dopis, může také vypočítat kontrolní součet a zjistit, zda odpovídá tomu, co jste napsali. Pokud ano, dopis se cestou nepoškodil ani nezměnil.

Způsob, jakým to CRC-32 dělá, je čtyřkrokový proces:

Krok 1: Přidejte nějaké místo navíc (vycpávka)

  • CRC přidává na konci zprávy trochu místa navíc (jako když balíte arašídy do krabice).
  • To pomáhá snáze odhalit chyby.

Krok 2: Kouzelné pravítko (polynom)

  • CRC-32 používá k měření dat speciální "kouzelné pravítko".
    • Představte si toto pravítko jako vzor hrbolků a rýh (toto je polynom, ale s tím slovem si nedělejte starosti).
    • Nejběžnějším „pravítkem“ pro CRC-32 je pevný vzor.

Krok 3: Posunutí pravítka (proces dělení)

  • Nyní CRC posune pravítko přes zprávu.
    • Na každém místě kontroluje, zda jsou hrbolky a drážky zarovnány.
    • Pokud se neseřadí, CRC udělá poznámku (to se provádí pomocí jednoduchého XOR, jako je zapnutí nebo vypnutí přepínačů).
    • Posouvá a přehazuje spínače, dokud nedosáhne konce.

Krok 4: Konečný výsledek (kontrolní součet)

  • Po posunutí pravítka přes celou zprávu vám zůstane malé číslo (32 bitů dlouhé), které představuje původní data.
    • Toto číslo je jako jedinečný otisk pro zprávu.
    • Toto je kontrolní součet CRC-32.

Verze prezentovaná na stránce je varianta CRC-32B, což je většinou PHP vtip, který mění pořadí bitů (little-endian vs big-endian). Tuto verzi byste pravděpodobně měli používat pouze v případě, že konkrétně potřebujete kompatibilitu s jinou aplikací PHP, která ji používá.

Mám kalkulačky i pro ostatní varianty:


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.