Miklix

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.

Ova stranica je mašinski prevedena sa engleskog kako bi bila dostupna što većem broju ljudi. Nažalost, mašinsko prevođenje još nije usavršena tehnologija, pa može doći do grešaka. Ako želite, možete pogledati originalnu englesku verziju ovdje:

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.


Izračunajte novi hash kod

Podaci dostavljeni ili datoteke učitane putem ovog obrasca će se čuvati na serveru onoliko dugo koliko je potrebno da se generiše traženi hash kod. Biće izbrisan neposredno prije nego što se rezultat vrati u vaš pretraživač.

Ulazni podaci:



Poslani tekst je kodiran UTF-8. Pošto hash funkcije rade na binarnim podacima, rezultat će biti drugačiji nego da je tekst u drugom kodiranju. Ako trebate izračunati hash teksta u određenom kodiranju, trebali biste umjesto toga prenijeti datoteku.



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:

Podijelite na BlueskyPodijelite na FacebookuPodijelite na LinkedIn-uPodijelite na Tumblr-uPodijeli na XPodijelite na LinkedIn-uPrikači na Pinterest

Mikkel Bang Christensen

O autoru

Mikkel Bang Christensen
Mikkel je kreator i vlasnik miklix.com. Ima preko 20 godina iskustva kao profesionalni kompjuterski programer/programer softvera i trenutno je zaposlen sa punim radnim vremenom u velikoj evropskoj IT korporaciji. Kada ne piše blog, svoje slobodno vrijeme provodi na širokom spektru interesovanja, hobija i aktivnosti, što se u određenoj mjeri može odraziti na različite teme koje se obrađuju na ovoj web stranici.