Miklix

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.

Táto stránka bola strojovo preložená z angličtiny, aby bola prístupná čo najväčšiemu počtu ľudí. Žiaľ, strojový preklad ešte nie je dokonalá technológia, takže sa môžu vyskytnúť chyby. Ak chcete, môžete si pozrieť pôvodnú anglickú verziu tu:

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.


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

Údaje odoslané alebo súbory nahrané prostredníctvom tohto formulára sa na serveri uchovávajú len tak dlho, ako je potrebné na vygenerovanie požadovaného kódu hash. Vymažú sa bezprostredne pred vrátením výsledku do prehliadača.

Vstupné údaje:



Odoslaný text je kódovaný v UTF-8. Keďže hašovacie funkcie pracujú s binárnymi údajmi, výsledok bude iný, ako keby bol text v inom kódovaní. Ak potrebujete vypočítať hash textu v konkrétnom kódovaní, mali by ste namiesto toho nahrať súbor.



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:


Zdieľať na BlueskyZdieľať na FacebookuZdieľať na LinkedInZdieľať na TumblrZdieľať na XZdieľať na LinkedInPripnúť na Pintereste

Mikkel Bang Christensen

O autorovi

Mikkel Bang Christensen
Mikkel je tvorcom a majiteľom miklix.com. Má viac ako 20 rokov skúseností ako profesionálny počítačový programátor/vývojár softvéru a v súčasnosti pracuje na plný úväzok pre veľkú európsku IT korporáciu. Keď práve nepíše blog, venuje svoj voľný čas širokej škále záujmov, koníčkov a aktivít, čo sa môže do istej miery odrážať v rôznorodosti tém na tejto webovej lokalite.