CRC-32C Kalkulator zgoščene kode
Objavljeno: 17. februar 2025 ob 6:45:17 pop. UTC
Nazadnje posodobljeno: 12. januar 2026 ob 11:37:30 dop. UTC
CRC-32C Hash Code Calculator
Ciklično preverjanje redundance (CRC) je koda za zaznavanje napak, ki se pogosto uporablja za zaznavanje nenamernih sprememb surovih podatkov. Čeprav tehnično ni kriptografska zgoščevalna funkcija, se CRC-32 pogosto imenuje zgoščevalna funkcija zaradi svoje sposobnosti, da iz vhoda s spremenljivo dolžino ustvari izhod fiksne velikosti (32 bitov). Različica, predstavljena na tej strani, je različica CRC-32C, ki je novejša, »pametnejša« (z boljšim zaznavanjem napak) različica, ki je pogosto strojno pospešena na sodobnih procesorjih (prek SSE 4.2).
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 CRC-32C Hash
Nisem matematik, vendar bom poskušal razložiti to zgoščevalno funkcijo s preprosto analogijo. Za razliko od mnogih kriptografskih zgoščevalnih funkcij ne gre za posebej zapleten algoritem, zato bo verjetno v redu ;-)
Predstavljajte si, da pošiljate pismo po pošti, vendar vas skrbi, da bi se lahko poškodovalo, preden prispe do prejemnika. Na podlagi vsebine pisma izračunate kontrolno vsoto CRC-32 in jo zapišete na ovojnico. Ko prejemnik prejme pismo, lahko nato izračuna tudi kontrolno vsoto in preveri, ali se ujema z vašim zapisom. Če se ujema, pismo med potjo ni bilo poškodovano ali spremenjeno.
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: Čarobni ravnilo (polinom)
- CRC-32 uporablja posebno "čarobno ravnilo" za merjenje podatkov. Predstavljajte si to ravnilo kot vzorec izboklin in utorov (to je polinom, vendar se ne obremenjujte s to besedo). Najpogostejše "ravnilo" za CRC-32 je fiksni vzorec.
3. korak: Pomikanje ravnila (postopek deljenja)
- Sedaj CRC drsi z ravnilom čez sporočilo. Na vsaki točki preveri, ali se izbokline in utori poravnajo. Če se ne poravnajo, CRC zabeleži (to se naredi z uporabo preprostega XOR, kot je vklop ali izklop stikal). Stikala premika in preklaplja, dokler ne doseže konca.
4. korak: Končni rezultat (kontrolna vsota)
- Ko z ravnilom povlečete čez celotno sporočilo, ostane majhna številka (dolga 32 bitov), ki predstavlja izvirne podatke. Ta številka je kot edinstven prstni odtis sporočila. To je kontrolna vsota CRC-32.
Različica, predstavljena na strani, je CRC-32C, ki bi morala biti prednostna različica, še posebej, če uporabljate procesor s strojno pospešenim delovanjem (SSE 4.2 in novejši) in ne potrebujete združljivosti z drugimi različicami.
Imam tudi kalkulatorje za ostale variante:
- Povezava
- Povezava
Nadaljnje branje
Če vam je bila ta objava všeč, vam bodo morda všeč tudi ti predlogi:
- Kalkulator zgoščene kode Tiger-128/3
- HAVAL-192/3 Kalkulator zgoščene kode
- Kalkulator zgoščene kode SHA3-512
