Miklix

CRC-32C Hash-koodilaskin

Julkaistu: 17. helmikuuta 2025 klo 18.44.45 UTC

Hash-koodilaskin, joka käyttää CRC-32C (Cyclic Redundancy Check 32 bit, C variant) hash-toimintoa laskemaan hash-koodin tekstin syöttämisen 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

Cyclic Redundancy Check (CRC) on virheentunnistuskoodi, jota käytetään yleisesti havaitsemaan vahingossa tapahtuneet muutokset raakadataan. Vaikka CRC-32 ei teknisesti ole kryptografinen hajautustoiminto, sitä kutsutaan usein hashiksi, koska se pystyy tuottamaan kiinteän kokoisen tulosteen (32 bittiä) muuttuvamittaisesta syötteestä. Tällä sivulla esitetty versio on CRC-32C-versio, joka on uudempi, "älykkäämpi" (parempi virheiden havaitseminen) versio, joka on usein laitteistokiihdytetty nykyaikaisissa prosessoreissa (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ämän hash-funktion yksinkertaisella analogialla. Toisin kuin monet kryptografiset hajautusfunktiot, se ei ole erityisen monimutkainen algoritmi, joten se on todennäköisesti kunnossa ;-)

Kuvittele, että lähetät kirjeen postitse, mutta olet huolissasi, että se saattaa vaurioitua 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 näin on, kirje ei ole vahingoittunut tai muuttunut matkan varrella.

Tapa, jolla CRC-32 tekee tämän, on nelivaiheinen prosessi:

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

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

Vaihe 2: Maaginen hallitsija (polynomi)

  • CRC-32 käyttää erityistä "maagista viivainta" mittaamaan dataa.
    • Ajattele tätä viivainta kuin kuoppia ja uria (tämä on polynomi, mutta älä välitä siitä sanasta).
    • Yleisin CRC-32:n "viivain" on kiinteä kuvio.

Vaihe 3: Viivaimen liu'uttaminen (jakoprosessi)

  • Nyt CRC liu'uttaa viivaimen viestin poikki.
    • Jokaisessa kohdassa se tarkistaa, ovatko kohoumat ja urat kohdakkain.
    • Jos ne eivät ole linjassa, CRC tekee muistiinpanon (tämä tehdään yksinkertaisella XOR:lla, kuten kytkimien kääntäminen päälle tai pois).
    • Se liu'uttaa ja kääntää kytkimiä, kunnes se saavuttaa lopun.

Vaihe 4: Lopullinen tulos (tarkistussumma)

  • Kun olet liu'uttanut viivaimen koko viestin yli, jää jäljelle pieni numero (32 bittiä), joka edustaa alkuperäistä dataa.
    • Tämä numero on kuin ainutlaatuinen sormenjälki viestille.
    • Tämä on CRC-32 tarkistussumma.

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

Minulla on laskimia myös muille versioille:

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

Mikkel Bang Christensen

Kirjoittajasta

Mikkel Bang 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.