CRC-32B jaucējkoda kalkulators
Publicēts: 2025. gada 17. februāris 18:26:18 UTC
Pēdējo reizi atjaunināts: 2026. gada 12. janvāris 09:15:50 UTC
CRC-32B Hash Code Calculator
Cikliskā redundances pārbaude (CRC) ir kļūdu noteikšanas kods, ko parasti izmanto, lai atklātu nejaušas izmaiņas neapstrādātos datos. Lai gan tehniski tā nav kriptogrāfiska jaucējfunkcija, CRC-32 bieži tiek saukta par jaucējfunkciju, jo tā spēj ģenerēt fiksēta izmēra izvadi (32 biti) no mainīga garuma ievades. Šajā lapā parādītā versija ir CRC-32B variants, kas patiesībā ir tikai PHP valodas īpatnība, kas apgriež bitus vietām (little-endian pret big-endian oriģinālajā CRC-32).
Pilnīga informācijas izpaušana: es neesmu rakstījis šajā lapā izmantotās hash funkcijas konkrēto implementāciju. Tā ir standarta funkcija, kas iekļauta PHP programmēšanas valodā. Es tikai izveidoju tīmekļa saskarni, lai padarītu to publiski pieejamu šeit ērtības labad.
Par CRC-32B jaucējkodu algoritmu
Es neesmu matemātiķis, bet mēģināšu izskaidrot šo jaucējfunkciju ar vienkāršu analoģiju. Atšķirībā no daudzām kriptogrāfiskajām jaucējfunkcijām, tas nav īpaši sarežģīts algoritms, tāpēc droši vien būs labi ;-)
Iedomājieties, ka jūs sūtāt vēstuli pa pastu, bet jūs uztraucaties, ka tā varētu tikt bojāta, pirms tā nonāk pie saņēmēja. Pamatojoties uz vēstules saturu, jūs aprēķināt CRC-32 kontrolsummu un uzrakstāt to uz aploksnes. Kad saņēmējs saņem vēstuli, viņš vai viņa var aprēķināt kontrolsummu un pārliecināties, vai tā atbilst jūsu rakstītajam. Ja tā atbilst, vēstule pa ceļam netika bojāta vai mainīta.
CRC-32 to dara četros posmos:
1. darbība: pievienojiet papildu vietu (polsterējumu)
- CRC ziņojuma beigās pievieno nedaudz papildu vietas (piemēram, iesaiņojot zemesriekstus kastē).
- Tas palīdz vieglāk pamanīt kļūdas.
2. solis: Burvju lineāls (polinoms)
- CRC-32 datu mērīšanai izmanto īpašu "maģisko lineālu". Iedomājieties šo lineālu kā izciļņu un rievu rakstu (tas ir polinoms, bet neuztraucieties par šo vārdu). Visizplatītākais CRC-32 "lineāls" ir fiksēts raksts.
3. solis: lineāla bīdīšana (dalīšanas process)
- Tagad CRC pabīda lineālu pāri ziņojumam. Katrā vietā tas pārbauda, vai izciļņi un rievas sakrīt. Ja tie nesakrīt, CRC veic atzīmi (tas tiek darīts, izmantojot vienkāršu XOR, piemēram, ieslēdzot vai izslēdzot slēdžus). Tas turpina slīdēt un pārslēgt slēdžus, līdz sasniedz galu.
4. solis: Galīgais rezultāts (kontrolsumma)
- Pēc lineāla pabīdīšanas pāri visam ziņojumam paliek neliels skaitlis (32 bitus garš), kas apzīmē sākotnējos datus. Šis skaitlis ir kā unikāls ziņojuma pirkstu nospiedums. Šī ir CRC-32 kontrolsumma.
Lapā redzamā versija ir CRC-32B variants, kas galvenokārt ir PHP īpatnība, kas maina bitu secību (little-endian pret big-endian). Šo versiju droši vien vajadzētu izmantot tikai tad, ja jums īpaši nepieciešama saderība ar citu PHP lietojumprogrammu, kas to izmanto.
Man ir kalkulatori arī citiem variantiem:
- Saite
- Saite
Papildu lasāmviela
Ja jums patika šī ziņa, jums varētu patikt arī šie ieteikumi:
- MD4 jaucējkoda kalkulators
- Fowler-Noll-Vo FNV1a-64 jaucējkoda kalkulators
- RIPEMD-320 jaucējkoda kalkulators
