CRC-32C Kalkulator heš koda
Objavljeno: 17. februar 2025. u 18:47:35 UTC
Kalkulator heš koda koji koristi heš funkciju CRC-32C (Cyclic Redundancy Check 32 bit, C varijanta) za izračunavanje hash koda na osnovu unosa teksta ili otpremanja datoteke.CRC-32C Hash Code Calculator
Cyclic Redundancy Check (CRC) je kod za otkrivanje grešaka koji se obično koristi za otkrivanje slučajnih promjena neobrađenih podataka. Iako tehnički nije kriptografska heš funkcija, CRC-32 se često naziva hešom 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" (bolja detekcija grešaka) verzija koja je često hardverski ubrzana na modernim CPU-ima (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 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šaću da objasnim ovu hash funkciju jednostavnom analogijom. Za razliku od mnogih kriptografskih hash funkcija, to nije posebno komplikovan 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 primatelju. Na osnovu sadržaja pisma izračunate kontrolnu sumu CRC-32 i zapišete to na koverti. Kada primalac primi pismo, on ili ona mogu takođe izračunati kontrolni zbir i vidjeti da li se poklapa s onim što ste napisali. Ako jeste, pismo nije oštećeno ili promijenjeno usput.
Način na koji CRC-32 to radi je proces u četiri koraka:
Korak 1: Dodajte malo dodatnog prostora (podstava)
- CRC dodaje malo dodatnog prostora na kraju poruke (poput pakovanja kikirikija u kutiju).
- To mu pomaže da lakše uoči greške.
Korak 2: Magični vladar (Polinom)
- CRC-32 koristi poseban "magični lenjir" za mjerenje podataka.
- Zamislite ovo ravnalo kao uzorak izbočina i žljebova (ovo je polinom, ali ne brinite za tu riječ).
- Najčešći "ravnalo" za CRC-32 je fiksni uzorak.
Korak 3: Klizanje ravnala (proces dijeljenja)
- Sada CRC klizi ravnalo preko poruke.
- Na svakom mjestu provjerava da li su izbočine i žljebovi u liniji.
- Ako se ne poravnaju, CRC pravi bilješku (ovo se radi pomoću jednostavnog XOR-a, poput uključivanja ili isključivanja prekidača).
- Nastavlja da klizi i okreće prekidače dok ne dođe do kraja.
Korak 4: Konačni rezultat (Kontrolni zbroj)
- Nakon što prevučete ravnalo preko cijele poruke, ostaje vam mali broj (dužine 32 bita) koji predstavlja originalne podatke.
- Ovaj broj je kao jedinstveni otisak prsta za poruku.
- Ovo je kontrolni zbir CRC-32.
Verzija predstavljena na stranici je varijanta CRC-32C, koja bi trebala biti poželjna varijanta, posebno ako koristite CPU koji ima hardverski ubrzan (SSE 4.2 i novije verzije) i nije vam potrebna kompatibilnost s drugim varijantama.
Imam kalkulatore i za ostale varijante: