Miklix

CRC-32C jaucējkoda kalkulators

Publicēts: 2025. gada 17. februāris 18:44:56 UTC

Jaucējkoda kalkulators, kas izmanto jaucējfunkciju CRC-32C (Cyclic Redundancy Check 32 bit, C variants), lai aprēķinātu jaucējkodu, pamatojoties uz teksta ievadi vai faila augšupielādi.

Šī lapa tika mašīntulkota no angļu valodas, lai padarītu to pieejamu pēc iespējas vairāk cilvēkiem. Diemžēl mašīntulkošana vēl nav pilnīga tehnoloģija, tāpēc tajā var rasties kļūdas. Ja vēlaties, oriģinālo versiju angļu valodā varat apskatīt šeit:

CRC-32C Hash Code Calculator

Cikliskā redundances pārbaude (CRC) ir kļūdu noteikšanas kods, ko parasti izmanto, lai noteiktu nejaušas izmaiņas neapstrādātajos datos. Lai gan tehniski tā nav kriptogrāfiska jaucējfunkcija, CRC-32 bieži tiek saukta par jaucējfunkciju, jo tā spēj radīt fiksēta izmēra izvadi (32 biti) no mainīga garuma ievades. Šajā lapā parādītā versija ir CRC-32C variants, kas ir jaunāka, "gudrāka" (labāka kļūdu noteikšanas) versija, kas bieži tiek paātrināta ar aparatūru modernajos CPU (izmantojot SSE 4.2).

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.


Aprēķināt jaunu Hash kodu

Izmantojot šo veidlapu, iesniegtie dati vai augšupielādētie faili tiks glabāti serverī tikai tik ilgi, cik nepieciešams, lai ģenerētu pieprasīto hash kodu. Tie tiks dzēsti tūlīt pirms rezultāta atgriešanas pārlūkprogrammā.

Ieejas dati:



Iesniegtais teksts ir kodēts UTF-8 formātā. Tā kā hash funkcijas darbojas ar binārajiem datiem, rezultāts būs citāds nekā tad, ja teksts būtu citā kodējumā. Ja jums ir nepieciešams aprēķināt teksta hash īpašā kodējumā, tā vietā jums ir jānosūta fails.



Par CRC-32C hash algoritmu

Es neesmu matemātiķis, bet es mēģināšu izskaidrot šo jaucējfunkciju ar vienkāršu analoģiju. Atšķirībā no daudzām kriptogrāfijas jaucējfunkcijām, tas nav īpaši sarežģīts algoritms, tāpēc, iespējams, viss būs kārtībā ;-)

Iedomājieties, ka sūtāt vēstuli pa pastu, taču uztraucaties, ka tā var tikt sabojāta, pirms tā nonāk pie adresāta. Pamatojoties uz vēstules saturu, jūs aprēķiniet CRC-32 kontrolsummu un uzrakstiet to uz aploksnes. Kad adresāts saņem vēstuli, viņš vai viņa var arī aprēķināt kontrolsummu un redzēt, vai tā atbilst jūsu rakstītajam. Ja tā notiek, vēstule nav bojāta vai mainīta.

Veids, kā CRC-32 to dara, ir četru soļu process:

1. darbība: pievienojiet papildu vietu (polsterējums)

  • CRC ziņojuma beigās pievieno nedaudz papildu vietas (piemēram, zemesriekstu iesaiņošana kastē).
  • Tas palīdz vieglāk pamanīt kļūdas.

2. darbība: burvju lineāls (polinoms)

  • CRC-32 datu mērīšanai izmanto īpašu "maģisko lineālu".
    • Padomājiet par šo lineālu kā par izciļņiem un rievām (tas ir polinoms, taču neuztraucieties par šo vārdu).
    • Visizplatītākais CRC-32 "lineāls" ir fiksēts raksts.

3. darbība: lineāla bīdīšana (dalīšanas process)

  • Tagad CRC slīd lineālu pāri ziņojumam.
    • Katrā vietā tā pārbauda, ​​vai izciļņi un rievas sakrīt.
    • Ja tie nesakrīt, CRC veic piezīmi (tas tiek darīts, izmantojot vienkāršu XOR, piemēram, ieslēdzot vai izslēdzot slēdžus).
    • Tas turpina bīdīt un pagriezt slēdžus, līdz sasniedz beigas.

4. darbība: gala rezultāts (kontrolsumma)

  • Pēc lineāla slīdēšanas pāri visam ziņojumam jums paliek neliels skaitlis (32 biti garš), kas apzīmē sākotnējos datus.
    • Šis numurs ir kā unikāls ziņojuma pirkstu nospiedums.
    • Šī ir CRC-32 kontrolsumma.

Lapā parādītā versija ir CRC-32C variants, kam vajadzētu būt vēlamajam variantam, it īpaši, ja izmantojat CPU, kuram ir aparatūras paātrinājums (SSE 4.2 un jaunāka versija), un jums nav nepieciešama saderība ar citiem variantiem.

Man ir kalkulatori arī citiem variantiem:

Kopīgojiet pakalpojumā BlueskyKopīgot FacebookKopīgojiet vietnē LinkedInKopīgojiet vietnē TumblrKopīgot vietnē XKopīgojiet vietnē LinkedInPiespraust vietnē Pinterest

Mikkel Bang Christensen

Par autoru

Mikkel Bang Christensen
Mikels ir miklix.com radītājs un īpašnieks. Viņam ir vairāk nekā 20 gadu pieredze kā profesionālam programmētājam/programmatūras izstrādātājam, un pašlaik viņš strādā pilna laika darbu lielā Eiropas IT korporācijā. Kad viņš neraksta blogus, viņš pavada brīvo laiku, pievēršoties dažādām interesēm, hobijiem un aktivitātēm, kas zināmā mērā var atspoguļoties šajā tīmekļa vietnē aplūkoto tēmu daudzveidībā.