CRC-32C Kalkulator hash koda
Objavljeno: 17. veljače 2025. u 18:47:39 UTC
Zadnje ažuriranje: 12. siječnja 2026. u 11:37:43 UTC
CRC-32C Hash Code Calculator
Ciklička provjera redundancije (CRC) je kod za otkrivanje pogrešaka koji se obično koristi za otkrivanje 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 duljine. Verzija predstavljena na ovoj stranici je varijanta CRC-32C, koja je novija, "pametnija" (bolje otkrivanje pogreš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 PHP programski jezik. Napravio sam samo web sučelje da bude javno dostupno ovdje 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 osobito kompliciran algoritam, pa će vjerojatno biti u redu ;-)
Zamislite da šaljete pismo poštom, ali se brinete da bi se moglo oštetiti prije nego što stigne do primatelja. Na temelju sadržaja pisma izračunavate CRC-32 kontrolni zbroj i zapisujete ga na omotnicu. Kada primatelj primi pismo, također može izračunati kontrolni zbroj i provjeriti odgovara li onome što ste napisali. Ako odgovara, pismo nije oštećeno ili promijenjeno putem.
CRC-32 to radi procesom u četiri koraka:
Korak 1: Dodajte malo dodatnog prostora (podmetanja)
- CRC dodaje malo dodatnog prostora na kraju poruke (kao pakiranje kikirikija u kutiju).
- To mu pomaže da lakše uoči greške.
Korak 2: Čarobno ravnalo (polinom)
- CRC-32 koristi posebno "čarobno 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šće "ravnalo" za CRC-32 je fiksni uzorak.
Korak 3: Pomicanje ravnala (postupak dijeljenja)
- Sada CRC pomiče ravnalo preko poruke. Na svakoj točki provjerava jesu li izbočine i utori poravnati. Ako se ne poravnaju, CRC zapisuje bilješku (to se radi jednostavnim XOR-om, poput uključivanja ili isključivanja prekidača). Nastavlja pomicati i prebacivati prekidače dok ne dođe do kraja.
Korak 4: Konačni rezultat (Kontrolna suma)
- Nakon što pomaknete ravnalo preko cijele poruke, ostaje vam mali broj (dug 32 bita) koji predstavlja izvorne podatke. Ovaj broj je poput jedinstvenog otiska prsta za poruku. To je CRC-32 kontrolni zbroj.
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:
