Miklix

CRC-32C räsikoodi kalkulaator

Avaldatud: 17. veebruar 2025, kell 18:43:58 UTC

Räsikoodi kalkulaator, mis kasutab tekstisisestuse või faili üleslaadimise põhjal räsikoodi arvutamiseks räsifunktsiooni CRC-32C (Cyclic Redundancy Check 32 bit, C variant).

See lehekülg on inglise keelest masintõlgitud, et muuta see võimalikult paljudele inimestele kättesaadavaks. Kahjuks ei ole masintõlge veel täiuslik tehnoloogia, mistõttu võivad esineda vead. Kui soovite, võite vaadata ingliskeelset originaalversiooni siin:

CRC-32C Hash Code Calculator

Tsükliline liiasuse kontroll (CRC) on veatuvastuskood, mida tavaliselt kasutatakse algandmete juhuslike muudatuste tuvastamiseks. Kuigi CRC-32 ei ole tehniliselt krüptograafiline räsifunktsioon, nimetatakse seda sageli räsiks, kuna see suudab toota muutuva pikkusega sisendist fikseeritud suurusega väljundit (32 bitti). Sellel lehel esitatud versioon on CRC-32C variant, mis on uuem, "targem" (parem veatuvastus) versioon, mis on sageli kaasaegsetel protsessoritel riistvarakiirendatud (SSE 4.2 kaudu).

Täielik avalikustamine: ma ei kirjutanud sellel leheküljel kasutatud hash-funktsiooni konkreetset rakendust. See on standardne funktsioon, mis kuulub PHP programmeerimiskeele juurde. Ma tegin veebiliidese ainult selleks, et see siin avalikult kättesaadavaks teha.


Uue Hash-koodi arvutamine

Selle vormi kaudu esitatud andmeid või üleslaetud faile hoitakse serveris ainult nii kaua, kui kaua kulub taotletud hash-koodi genereerimiseks. Need kustutatakse vahetult enne tulemuse tagastamist teie brauserile.

Sisendandmed:



Esitatud tekst on UTF-8 kodeeritud. Kuna hash-funktsioonid töötavad binaarsete andmetega, on tulemus teistsugune kui siis, kui tekst oleks mõnes muus kodeeringus. Kui teil on vaja arvutada mingis kindlas kodeeringus oleva teksti hash, peaksite selle asemel üles laadima faili.



Räsialgoritmi CRC-32C kohta

Ma ei ole matemaatik, aga ma püüan seda räsifunktsiooni lihtsa analoogiaga selgitada. Erinevalt paljudest krüptograafilistest räsifunktsioonidest ei ole see eriti keeruline algoritm, nii et tõenäoliselt saab sellega hakkama ;-)

Kujutage ette, et saadate kirja posti teel, kuid kardate, et see võib kahjustada saada, enne kui see adressaadini jõuab. Kirja sisu põhjal arvutate CRC-32 kontrollsumma ja kirjutate selle ümbrikule. Kui adressaat kirja saab, saab ta ka kontrollsumma välja arvutada ja vaadata, kas see ühtib sinu kirjutatuga. Kui jah, siis kiri ei kahjustatud ega muutunud.

See, kuidas CRC-32 seda teeb, koosneb neljast etapist:

1. toiming: lisage lisaruumi (polster)

  • CRC lisab sõnumi lõppu veidi lisaruumi (nagu maapähklite kasti pakkimine).
  • See aitab vigu kergemini märgata.

2. samm: maagiline joonlaud (polünoom)

  • CRC-32 kasutab andmete mõõtmiseks spetsiaalset "maagilist joonlauda".
    • Mõelge sellele joonlauale kui konaruste ja soonte mustrile (see on polünoom, kuid ärge muretsege selle sõna pärast).
    • Kõige tavalisem CRC-32 "joonlaud" on fikseeritud muster.

3. samm: joonlaua libistamine (jagamisprotsess)

  • Nüüd libistab CRC joonlaua üle sõnumi.
    • Igas kohas kontrollib see, kas konarused ja sooned on kohakuti.
    • Kui need ei ole rivis, teeb CRC märkuse (seda tehakse lihtsa XOR-i abil, näiteks lülitite sisse- või väljalülitamine).
    • See jätkab lülitite libistamist ja pööramist, kuni jõuab lõpuni.

4. samm: lõpptulemus (kontrollsumma)

  • Pärast joonlaua libistamist üle kogu sõnumi jääb alles väike arv (32 bitti pikk), mis tähistab algandmeid.
    • See number on sõnumi jaoks nagu ainulaadne sõrmejälg.
    • See on CRC-32 kontrollsumma.

Lehel toodud versioon on CRC-32C variant, mis peaks olema eelistatud variant, eriti kui kasutate riistvaraliselt kiirendatud protsessorit (SSE 4.2 ja uuem) ning te ei vaja ühilduvust teiste variantidega.

Mul on kalkulaatorid ka teiste variantide jaoks:

Jagage Bluesky'sJaga FacebookisJagage LinkedInisJaga TumblrisJaga X-isJagage LinkedInisKinnitage Pinterestis

Mikkel Bang Christensen

Autorist

Mikkel Bang Christensen
Mikkel on miklix.com looja ja omanik. Tal on üle 20 aasta kogemust professionaalse programmeerija/tarkvaraarendajana ning praegu töötab ta täiskohaga suures Euroopa IT-ettevõttes. Kui ta ei kirjuta blogi, veedab ta oma vaba aega mitmesuguste huvide, hobide ja tegevustega, mis võib mingil määral kajastuda sellel veebisaidil käsitletavate teemade mitmekesisuses.