CRC-32B Hash-koodilaskin
Julkaistu: 17. helmikuuta 2025 klo 18.24.38 UTC
Hash-koodilaskin, joka käyttää CRC-32B (Cyclic Redundancy Check 32 bit, B variant) hash-toimintoa laskemaan hash-koodin tekstin syöttämisen tai tiedoston lataamisen perusteella.CRC-32B 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-32B-versio, joka on oikeastaan vain PHP-kielen omituisuus, joka kääntää bitit ympäri (alkuperäisessä CRC-32:ssa Little-endian vs big-endian).
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ä.
Tietoja CRC-32B-hajautusalgoritmista
En ole matemaatikko, mutta yritän selittää tämän hash-funktion yksinkertaisella analogialla. Toisin kuin monet kryptografiset hash-funktiot, 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 voi 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-32B-variantti, joka on enimmäkseen PHP-omituinen, joka muuttaa bittijärjestystä (little-endian vs big-endian). Sinun tulisi luultavasti käyttää tätä versiota vain, jos tarvitset yhteensopivuuden toisen sitä käyttävän PHP-sovelluksen kanssa.
Minulla on laskimia myös muille versioille: