Kalkulačka hash kódu CRC-32B
Publikované: 17. februára 2025 o 18:29:42 UTC
Kalkulačka hash kódu, ktorá používa funkciu hash CRC-32B (Cyclic Redundancy Check 32 bit, variant B) na výpočet hash kódu na základe zadania textu alebo nahrania súboru.CRC-32B Hash Code Calculator
Cyklická kontrola redundancie (CRC) je kód na zisťovanie chýb bežne používaný na zisťovanie náhodných zmien v nespracovaných údajoch. Aj keď to technicky nie je kryptografická hašovacia funkcia, CRC-32 sa často označuje ako haš, pretože má schopnosť produkovať výstup s pevnou veľkosťou (32 bitov) zo vstupu s premenlivou dĺžkou. Verzia prezentovaná na tejto stránke je variantom CRC-32B, čo je v skutočnosti len vtip v jazyku PHP, ktorý prevracia kúsky (little-endian vs big-endian v origináli CRC-32).
Úplné odhalenie: konkrétnu implementáciu hashovacej funkcie použitej na tejto stránke som nenapísal. Ide o štandardnú funkciu, ktorá je súčasťou programovacieho jazyka PHP. Vytvoril som len webové rozhranie, aby som ju tu pre pohodlie sprístupnil verejnosti.
O hashovom algoritme CRC-32B
Nie som matematik, ale pokúsim sa túto hašovaciu funkciu vysvetliť jednoduchou analógiou. Na rozdiel od mnohých kryptografických hašovacích funkcií to nie je nijak zvlášť zložitý algoritmus, takže to asi bude v poriadku ;-)
Predstavte si, že posielate list poštou, ale obávate sa, že by sa mohol poškodiť skôr, ako dorazí k príjemcovi. Na základe obsahu listu vypočítate kontrolný súčet CRC-32 a napíšete ho na obálku. Keď príjemca dostane list, môže tiež vypočítať kontrolný súčet a zistiť, či sa zhoduje s tým, čo ste napísali. Ak áno, list sa cestou nepoškodil ani nezmenil.
Spôsob, akým to CRC-32 robí, je štvorkrokový proces:
Krok 1: Pridajte nejaké miesto navyše (výplň)
- CRC pridáva na konci správy trochu miesta navyše (napríklad balenie arašidov do krabice).
- To pomáha ľahšie rozpoznať chyby.
Krok 2: Čarovné pravítko (polynóm)
- CRC-32 používa na meranie údajov špeciálne „magické pravítko“.
- Predstavte si toto pravítko ako vzor hrbolčekov a drážok (toto je polynóm, ale tohto slova sa nebojte).
- Najbežnejším „pravítkom“ pre CRC-32 je pevný vzor.
Krok 3: Posúvanie pravítka (proces delenia)
- Teraz CRC posúva pravítko cez správu.
- Na každom mieste kontroluje, či sú hrbolčeky a ryhy zarovnané.
- Ak nie sú v rade, CRC urobí poznámku (to sa robí pomocou jednoduchého XOR, ako je zapnutie alebo vypnutie prepínačov).
- Stále posúva a preklápa spínače, až kým nedosiahne koniec.
Krok 4: Konečný výsledok (kontrolný súčet)
- Po posunutí pravítka cez celú správu vám zostane malé číslo (dĺžka 32 bitov), ktoré predstavuje pôvodné údaje.
- Toto číslo je ako jedinečný odtlačok prsta pre správu.
- Toto je kontrolný súčet CRC-32.
Verzia prezentovaná na stránke je variant CRC-32B, čo je väčšinou zvláštnosť PHP, ktorá mení poradie bitov (little-endian vs big-endian). Túto verziu by ste pravdepodobne mali používať iba vtedy, ak potrebujete kompatibilitu s inou aplikáciou PHP, ktorá ju používa.
Mám kalkulačky aj pre ostatné varianty: