CRC-32B Kalkulator zgoščene kode
Objavljeno: 17. februar 2025 ob 6:29:44 pop. UTC
Kalkulator zgoščevalne kode, ki uporablja zgoščevalno funkcijo CRC-32B (Cyclic Redundancy Check 32 bit, različica B) za izračun zgoščevalne kode na podlagi vnosa besedila ali nalaganja datoteke.CRC-32B Hash Code Calculator
Ciklično preverjanje redundance (CRC) je koda za odkrivanje napak, ki se običajno uporablja za odkrivanje nenamernih sprememb neobdelanih podatkov. Čeprav tehnično ni kriptografska zgoščevalna funkcija, se CRC-32 pogosto imenuje zgoščevalna funkcija zaradi svoje zmožnosti ustvarjanja izhoda fiksne velikosti (32 bitov) iz vhoda spremenljive dolžine. Različica, predstavljena na tej strani, je različica CRC-32B, ki je pravzaprav samo domislica v jeziku PHP, ki obrne bite (little-endian proti big-endian v originalnem CRC-32).
Razkritje: nisem napisal posebne izvedbe funkcije hash, uporabljene na tej strani. Gre za standardno funkcijo, ki je vključena v programski jezik PHP. Zaradi priročnosti sem pripravil le spletni vmesnik, da je na voljo javnosti.
O algoritmu zgoščevanja CRC-32B
Nisem matematik, vendar bom poskušal razložiti to zgoščevalno funkcijo s preprosto analogijo. Za razliko od mnogih kriptografskih zgoščevalnih funkcij, to ni posebej zapleten algoritem, tako da bo verjetno v redu ;-)
Predstavljajte si, da pošiljate pismo po pošti, vendar vas skrbi, da bi se lahko poškodovalo, preden bi prispelo do prejemnika. Na podlagi vsebine pisma izračunate kontrolno vsoto CRC-32 in jo napišete na ovojnico. Ko prejemnik prejme pismo, lahko nato tudi izračuna kontrolno vsoto in preveri, ali se ujema s tem, kar ste napisali. Če se, črka med potjo ni bila poškodovana ali spremenjena.
CRC-32 to počne v štirih korakih:
1. korak: Dodajte nekaj dodatnega prostora (oblazinjenje)
- CRC doda malo dodatnega prostora na koncu sporočila (kot pakiranje arašidov v škatlo).
- To mu pomaga lažje odkriti napake.
2. korak: Čarobno ravnilo (polinom)
- CRC-32 za merjenje podatkov uporablja posebno "magično ravnilo".
- Zamislite si to ravnilo kot vzorec izboklin in utorov (to je polinom, vendar naj vas ta beseda ne skrbi).
- Najpogostejši "ravnilo" za CRC-32 je fiksni vzorec.
3. korak: Drsenje ravnila (postopek deljenja)
- Zdaj CRC drsi z ravnilom čez sporočilo.
- Na vsakem mestu preveri, ali so izbokline in utori poravnani.
- Če se ne ujemata, CRC naredi opombo (to se naredi s preprostim XOR, kot je vklop ali izklop stikal).
- Drsi in obrača stikala, dokler ne doseže konca.
4. korak: končni rezultat (kontrolna vsota)
- Ko z ravnilom drsite po celotnem sporočilu, vam ostane majhna številka (dolga 32 bitov), ki predstavlja izvirne podatke.
- Ta številka je kot edinstven prstni odtis za sporočilo.
- To je kontrolna vsota CRC-32.
Različica, predstavljena na strani, je različica CRC-32B, ki je večinoma domislica PHP, ki spreminja bitni vrstni red (little-endian proti big-endian). Verjetno bi morali to različico uporabljati le, če izrecno potrebujete združljivost z drugo aplikacijo PHP, ki jo uporablja.
Tudi za druge variante imam kalkulatorje: