Kalkulačka hash kódu CRC-32C
Vydáno: 17. února 2025 v 18:42:03 UTC
Poslední aktualizace: 12. ledna 2026 v 11:37:19 UTC
CRC-32C Hash Code Calculator
Cyklická redundantní kontrola (CRC) je kód pro detekci chyb, který se běžně používá k detekci náhodných změn v nezpracovaných datech. Ačkoli se technicky nejedná o kryptografickou hašovací funkci, CRC-32 se často označuje jako hash kvůli své schopnosti produkovat výstup pevné velikosti (32 bitů) z proměnné délky vstupu. Verze uvedená na této stránce je varianta CRC-32C, což je novější, „chytřejší“ (lepší detekce chyb) verze, která je často hardwarově akcelerována na moderních procesorech (prostřednictvím SSE 4.2).
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.
O hašovacím algoritmu CRC-32C
Nejsem matematik, ale pokusím se vysvětlit tuto hašovací funkci jednoduchou analogií. Na rozdíl od mnoha kryptografických hašovacích funkcí se nejedná o nijak zvlášť složitý algoritmus, takže to pravděpodobně bude v pořádku ;-)
Představte si, že posíláte dopis poštou, ale obáváte se, že by se mohl před doručením k příjemci poškodit. Na základě obsahu dopisu vypočítáte kontrolní součet CRC-32 a ten napíšete na obálku. Když příjemce dopis obdrží, může také vypočítat kontrolní součet a zjistit, zda se shoduje s tím, co jste napsali. Pokud ano, dopis nebyl cestou poškozen ani změněn.
CRC-32 to dělá čtyřstupňovým procesem:
Krok 1: Přidejte trochu dalšího prostoru (odsazení)
- CRC přidává na konec zprávy trochu více místa (jako balení arašídů do krabice).
- To mu pomáhá snáze odhalit chyby.
Krok 2: Magické pravítko (polynom)
- CRC-32 používá k měření dat speciální „magické pravítko“. Představte si toto pravítko jako vzorek hrbolků a drážek (jedná se o polynom, ale s tímto slovem se netrapte). Nejběžnějším „pravítkem“ pro CRC-32 je pevný vzorek.
Krok 3: Posouvání pravítka (dělení)
- CRC nyní posouvá pravítko po zprávě. V každém místě kontroluje, zda se hrboly a drážky shodují. Pokud se neshodují, CRC si to udělá (to se provádí pomocí jednoduchého XOR, jako je zapínání nebo vypínání přepínačů). Neustále posouvá a přepíná přepí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 prstu pro zprávu. Jedná se o kontrolní součet CRC-32.
Verze uvedená na stránce je varianta CRC-32C, která by měla být preferovanou variantou, zejména pokud používáte CPU s hardwarovou akcelerací (SSE 4.2 a novější) a nepotřebujete kompatibilitu s jinými variantami.
Mám kalkulačky i pro ostatní varianty:
- Odkaz
- Odkaz
Další čtení
Pokud se vám tento příspěvek líbil, mohly by se vám líbit i tyto návrhy:
