CRC-32B räsikoodi kalkulaator
Avaldatud: 17. veebruar 2025, kell 18:23:56 UTC
Viimati uuendatud: 12. jaanuar 2026, kell 09:15:43 UTC
CRC-32B Hash Code Calculator
Tsükliline redundantsuse kontroll (CRC) on veatuvastuskood, mida tavaliselt kasutatakse toorandmete juhuslike muudatuste tuvastamiseks. Kuigi tehniliselt ei ole see krüptograafiline räsifunktsioon, nimetatakse CRC-32-t sageli räsifunktsiooniks, kuna see suudab muutuva pikkusega sisendist toota fikseeritud suurusega väljundit (32 bitti). Sellel lehel esitletud versioon on CRC-32B variant, mis on tegelikult lihtsalt PHP keele iseärasus, mis pöörab bitte ringi (algses CRC-32-s little-endian vs big-endian).
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.
CRC-32B räsialgoritmi kohta
Ma ei ole matemaatik, aga püüan seda räsifunktsiooni lihtsa analoogia abil selgitada. Erinevalt paljudest krüptograafilistest räsifunktsioonidest pole see eriti keeruline algoritm, seega on see ilmselt okei ;-)
Kujuta ette, et saadad kirja posti teel, aga kardad, et see võib enne saajani jõudmist kahjustada saada. Kirja sisu põhjal arvutad CRC-32 kontrollsumma ja kirjutad selle ümbrikule. Kui saaja kirja kätte saab, saab ta samuti kontrollsumma arvutada ja vaadata, kas see vastab sinu kirjutatule. Kui vastab, siis kiri ei ole teekonnal kahjustatud ega muudetud.
CRC-32 teeb seda neljaastmelise protsessiga:
1. samm: lisage veidi lisaruumi (täidist)
- CRC lisab sõnumi lõppu veidi lisaruumi (nagu maapähklite pakkimine karpi).
- See aitab vigu kergemini märgata.
2. samm: Maagiline joonlaud (polünoom)
- CRC-32 kasutab andmete mõõtmiseks spetsiaalset "maagilist joonlauda". Kujutage ette seda joonlauda kui konaruste ja soonte mustrit (see on polünoom, aga ärge selle sõna pärast muretsege). CRC-32 kõige levinum "joonlaud" on fikseeritud mustriga.
3. samm: joonlaua libistamine (jagamisprotsess)
- Nüüd libistab CRC joonlaua üle sõnumi. Igas kohas kontrollib see, kas muhud ja sooned on joondatud. Kui need ei ole joondatud, teeb CRC märkuse (seda tehakse lihtsa XOR-operatsiooniga, näiteks lülitite sisse- ja väljalülitamisega). See libistab ja lülitab lüliteid edasi, kuni jõuab lõppu.
4. samm: Lõpptulemus (kontrollsumma)
- Pärast joonlaua libistamist üle kogu sõnumi jääb alles väike number (32 bitti pikk), mis tähistab algandmeid. See number on nagu sõnumi unikaalne sõrmejälg. See on CRC-32 kontrollsumma.
Lehel esitletud versioon on CRC-32B variant, mis on enamasti PHP iseärasus, mis muudab bittide järjekorda (little-endian vs big-endian). Tõenäoliselt peaksite seda versiooni kasutama ainult siis, kui vajate ühilduvust mõne teise PHP rakendusega, mis seda kasutab.
Mul on kalkulaatorid ka teiste variantide jaoks:
- Link
- Link
Lisalugemist
Kui see postitus teile meeldis, võivad teile meeldida ka need soovitused:
