Miklix

CRC-32C Hash-koodilaskin

Julkaistu: 17. helmikuuta 2025 klo 18.44.45 UTC
Viimeksi päivitetty: 12. tammikuuta 2026 klo 11.37.22 UTC

Hajautuskoodin laskin, joka käyttää CRC-32C (Cyclic Redundancy Check 32 bit, C-variantti) -hajautusfunktiota laskeakseen hajautuskoodin tekstisyötteen tai tiedoston latauksen perusteella.

Tämä sivu on käännetty koneellisesti englannista, jotta se olisi mahdollisimman monen ihmisen saatavilla. Valitettavasti konekääntäminen ei ole vielä täydellistä tekniikkaa, joten virheitä voi esiintyä. Voit halutessasi tarkastella alkuperäistä englanninkielistä versiota täällä:

CRC-32C Hash Code Calculator

Syklinen redundanssitarkistus (CRC) on virheiden havaitsemiseen tarkoitettu koodi, jota käytetään yleisesti raakadatan vahingossa tapahtuvien muutosten havaitsemiseen. Vaikka CRC-32 ei teknisesti ottaen ole kryptografinen tiivistefunktio, sitä kutsutaan usein tiivisteeksi, koska se pystyy tuottamaan kiinteän kokoisen tulosteen (32 bittiä) vaihtelevan pituisesta syötteestä. Tällä sivulla esitetty versio on CRC-32C-variantti, joka on uudempi, "älykkäämpi" (parempi virheiden havaitseminen) versio, jota usein laitteistokiihdytetään nykyaikaisissa suorittimissa (SSE 4.2:n kautta).

Täydellinen paljastus: en ole kirjoittanut tällä sivulla käytetyn hash-funktion toteutusta. Se on PHP-ohjelmointikielen mukana tuleva vakiofunktio. Tein vain web-käyttöliittymän, jotta se olisi julkisesti saatavilla täällä.


Laske uusi Hash-koodi

Tämän lomakkeen kautta lähetettyjä tietoja tai ladattuja tiedostoja säilytetään palvelimella vain niin kauan kuin pyydetyn hash-koodin luominen kestää. Ne poistetaan välittömästi ennen kuin tulos palautetaan selaimellesi.

Syöttötiedot:



Toimitettu teksti on UTF-8-koodattu. Koska hash-funktiot toimivat binääridatalla, tulos on erilainen kuin jos teksti olisi muulla koodauksella. Jos sinun on laskettava hash-tiedosto tekstistä tietyllä koodauksella, sinun on ladattava tiedosto.



Tietoja CRC-32C-hajautusalgoritmista

En ole matemaatikko, mutta yritän selittää tätä tiivistefunktiota yksinkertaisella analogialla. Toisin kuin monet kryptografiset tiivistefunktiot, se ei ole erityisen monimutkainen algoritmi, joten se luultavasti riittää ;-)

Kuvittele, että lähetät kirjettä postitse, mutta olet huolissasi siitä, että se saattaa vahingoittua ennen kuin se saapuu vastaanottajalle. Kirjeen sisällön perusteella lasket CRC-32-tarkistussumman ja kirjoitat sen kirjekuoreen. Kun vastaanottaja vastaanottaa kirjeen, hän voi myös laskea tarkistussumman ja tarkistaa, vastaako se kirjoittamaasi. Jos vastaa, kirje ei ole vaurioitunut tai muuttunut matkan varrella.

CRC-32 tekee tämän nelivaiheisella prosessilla:

Vaihe 1: Lisää ylimääräistä tilaa (täyte)

  • CRC lisää viestin loppuun hieman ylimääräistä tilaa (kuten pakkaisi maapähkinöitä laatikkoon).
  • Tämä auttaa sitä havaitsemaan virheet helpommin.

Vaihe 2: Maaginen viivain (polynomi)

  • CRC-32 käyttää erityistä "taikaviivainta" datan mittaamiseen. Ajattele tätä viivainta kohoumien ja urien muodostamana kuviona (tämä on polynomi, mutta älä välitä siitä sanasta). Yleisin CRC-32:n "viivain" on kiinteä kuvio.

Vaihe 3: Viivaimen liu'uttaminen (jakolasku)

  • CRC liu'uttaa nyt viivainta viestin poikki. Jokaisessa kohdassa se tarkistaa, ovatko kohoumat ja urat linjassa. Jos ne eivät ole linjassa, CRC tekee merkinnän (tämä tehdään käyttämällä yksinkertaista XOR-operaatiota, kuten kytkimien kytkemistä päälle tai pois päältä). Se jatkaa kytkimien liu'uttamista ja kääntämistä, kunnes se saavuttaa pään.

Vaihe 4: Lopputulos (tarkistussumma)

  • Kun olet liu'uttanut viivainta koko viestin poikki, jäljelle jää pieni numero (32 bittiä pitkä), joka edustaa alkuperäistä dataa. Tämä numero on kuin viestin yksilöllinen sormenjälki. Tämä on CRC-32-tarkistussumma.

Sivulla esitetty versio on CRC-32C-variantti, jonka pitäisi olla ensisijainen variantti, varsinkin jos käytät laitteistokiihdytettyä suoritinta (SSE 4.2 ja uudemmat) etkä tarvitse yhteensopivuutta muiden varianttien kanssa.

Minulla on laskureita myös muille versioille:

  • Linkki
  • Linkki

Lisälukemista

Jos pidit tästä postauksesta, saatat pitää myös näistä ehdotuksista:


Jaa BlueskyssäJaa FacebookissaJaa LinkedInissäJaa TumblrissaJaa X:ssäJaa LinkedInissäPin Pinterestissä

Mikkel Christensen

Kirjoittajasta

Mikkel Christensen
Mikkel on miklix.com-sivuston luoja ja omistaja. Hänellä on yli 20 vuoden kokemus ammattimaisena tietokoneohjelmoijana/ohjelmistokehittäjänä, ja tällä hetkellä hän työskentelee kokopäiväisesti suuressa eurooppalaisessa IT-yrityksessä. Kun hän ei ole bloggaamassa, hän käyttää vapaa-aikaansa monenlaisiin kiinnostuksen kohteisiin, harrastuksiin ja aktiviteetteihin, mikä saattaa jossain määrin heijastua tällä verkkosivustolla käsiteltävien aiheiden moninaisuuteen.