CRC-32C Kalkulator heš koda
Objavljeno: 17. februar 2025. u 18:47:35 UTC
Posljednje ažurirano: 12. januar 2026. u 11:37:42 UTC
CRC-32C Hash Code Calculator
Ciklička provjera redundancije (CRC) je kod za detekciju grešaka koji se obično koristi za detekciju slučajnih promjena sirovih podataka. Iako tehnički nije kriptografska hash funkcija, CRC-32 se često naziva hashom zbog svoje sposobnosti da proizvede izlaz fiksne veličine (32 bita) iz ulaza promjenjive dužine. Verzija predstavljena na ovoj stranici je varijanta CRC-32C, koja je novija, "pametnija" (bolje otkrivanje grešaka) verzija koja je često hardverski ubrzana na modernim CPU-ima (putem SSE 4.2).
Potpuno otkrivanje: Nisam napisao konkretnu implementaciju hash funkcije koja se koristi na ovoj stranici. To je standardna funkcija uključena u programski jezik PHP. Napravio sam samo web sučelje da ga ovdje učinim javno dostupnim radi praktičnosti.
O CRC-32C Hash algoritmu
Nisam matematičar, ali pokušat ću objasniti ovu hash funkciju jednostavnom analogijom. Za razliku od mnogih kriptografskih hash funkcija, to nije posebno kompliciran algoritam, tako da će vjerovatno biti u redu ;-)
Zamislite da šaljete pismo poštom, ali ste zabrinuti da bi se moglo oštetiti prije nego što stigne do primaoca. Na osnovu sadržaja pisma, izračunavate CRC-32 kontrolnu sumu i zapisujete je na kovertu. Kada primalac primi pismo, on ili ona tada također može izračunati kontrolnu sumu i vidjeti da li se podudara s onim što ste napisali. Ako se podudara, pismo nije oštećeno ili promijenjeno tokom puta.
CRC-32 to radi procesom od četiri koraka:
Korak 1: Dodajte malo dodatnog prostora (podmetanja)
- CRC dodaje malo dodatnog prostora na kraju poruke (kao pakovanje kikirikija u kutiju).
- Ovo mu pomaže da lakše uoči greške.
Korak 2: Magični ravnalo (polinom)
- CRC-32 koristi poseban "magični ravnalo" za mjerenje podataka. Zamislite ovo ravnalo kao uzorak izbočina i žljebova (ovo je polinom, ali ne brinite o toj riječi). Najčešći "ravnalo" za CRC-32 je fiksni uzorak.
Korak 3: Pomicanje ravnala (proces dijeljenja)
- Sada CRC pomiče ravnalo preko poruke. Na svakoj tački provjerava da li se izbočine i žljebovi poklapaju. Ako se ne poklapaju, CRC zapisuje (ovo se radi pomoću jednostavnog XOR, kao što je uključivanje ili isključivanje prekidača). Nastavlja pomicati i prebacivati prekidače dok ne dođe do kraja.
Korak 4: Konačni rezultat (Kontrolna suma)
- Nakon što povučete ravnalo preko cijele poruke, ostaje vam mali broj (dugačak 32 bita) koji predstavlja originalne podatke. Ovaj broj je poput jedinstvenog otiska prsta za poruku. To je CRC-32 kontrolni zbir.
Verzija predstavljena na stranici je CRC-32C varijanta, koja bi trebala biti preferirana varijanta, posebno ako koristite CPU koji ima hardversko ubrzanje (SSE 4.2 i noviji) i ne trebate kompatibilnost s drugim varijantama.
Imam kalkulatore i za ostale varijante:
- Link
- Link
Dodatno čitanje
Ako vam se svidio ovaj post, možda će vam se svidjeti i ovi prijedlozi:
