CRC-32C Kalkulator hash koda
Objavljeno: 17. veljače 2025. u 18:47:39 UTC
Kalkulator hash koda koji koristi hash funkciju CRC-32C (Cyclic Redundancy Check 32 bit, C varijanta) za izračunavanje hash koda na temelju unosa teksta ili učitavanja datoteke.CRC-32C Hash Code Calculator
Ciklička redundantna provjera (CRC) je kod za otkrivanje pogrešaka koji se obično koristi za otkrivanje slučajnih promjena neobrađenih podataka. Iako tehnički nije kriptografska hash funkcija, CRC-32 se često naziva hash 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" (bolja detekcija pogrešaka) verzija koja je često hardverski ubrzana na modernim procesorima (preko 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 posebno kompliciran algoritam, tako da će vjerojatno biti u redu ;-)
Zamislite da šaljete pismo poštom, ali ste zabrinuti da bi se ono moglo oštetiti prije nego što stigne do primatelja. Na temelju sadržaja pisma izračunate CRC-32 kontrolni zbroj i napišete ga na omotnici. Kada primatelj primi pismo, on ili ona mogu također izračunati kontrolni zbroj i vidjeti odgovara li onome što ste napisali. Ako jest, slovo nije oštećeno ili promijenjeno putem.
Način na koji CRC-32 to radi sastoji se od četiri koraka:
Korak 1: Dodajte malo dodatnog prostora (ispuna)
- CRC dodaje malo dodatnog prostora na kraju poruke (kao pakiranje kikirikija u kutiju).
- To mu pomaže da lakše uoči pogreške.
Korak 2: Čarobno ravnalo (polinom)
- CRC-32 koristi posebno "čarobno ravnalo" za mjerenje podataka.
- Zamislite ovo ravnalo kao uzorak izbočina i utora (ovo je polinom, ali ne brinite oko te riječi).
- Najčešći "ravnalo" za CRC-32 je fiksni uzorak.
Korak 3: Klizanje ravnala (postupak dijeljenja)
- Sada CRC klizi ravnalom preko poruke.
- Na svakom mjestu provjerava jesu li izbočine i utori poravnati.
- Ako se ne slože, CRC bilježi (to se radi jednostavnim XOR-om, poput uključivanja ili isključivanja prekidača).
- Stalno klizi i okreće 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 (32 bita) koji predstavlja izvorne podatke.
- Ovaj broj je kao jedinstveni otisak prsta za poruku.
- Ovo je CRC-32 kontrolni zbroj.
Verzija predstavljena na stranici je varijanta CRC-32C, koja bi trebala biti poželjna varijanta, posebno ako koristite CPU koji ima hardverski ubrzani (SSE 4.2 i noviji) i ne trebate kompatibilnost s drugim varijantama.
Imam kalkulatore i za ostale varijante: