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.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.
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: