Miklix

CRC-32C hash kód kalkulátor

Megjelent: 2025. február 17. 18:44:48 UTC

Kivonatkód-kalkulátor, amely a CRC-32C (Cyclic Redundancy Check 32 bit, C variáns) hash funkciót használja a hash kód kiszámításához szövegbevitel vagy fájlfeltöltés alapján.

Ezt az oldalt angolból gépi fordítással készítettük, hogy minél több ember számára elérhető legyen. Sajnos a gépi fordítás még nem tökéletes technológia, ezért előfordulhatnak hibák. Ha szeretné, itt megtekintheti az eredeti angol nyelvű változatot:

CRC-32C Hash Code Calculator

A ciklikus redundanciaellenőrzés (CRC) egy hibaérzékelő kód, amelyet általában a nyers adatok véletlenszerű változásainak észlelésére használnak. Bár technikailag nem kriptográfiai hash-függvény, a CRC-32-t gyakran hash-nek nevezik, mivel képes fix méretű (32 bites) kimenetet előállítani változó hosszúságú bemenetről. Az ezen az oldalon bemutatott verzió a CRC-32C változat, amely egy újabb, "okosabb" (jobb hibaérzékelés) verzió, amely gyakran hardveresen gyorsított modern CPU-kon (SSE 4.2-n keresztül).

Teljes nyilvánosságra hozatal: nem én írtam az ezen az oldalon használt hash függvény konkrét implementációját. Ez egy szabványos függvény, amely a PHP programozási nyelvben szerepel. Csak a webes felületet készítettem el, hogy a kényelem érdekében itt nyilvánosan elérhetővé tegyem.


Új Hash kód kiszámítása

Az ezen az űrlapon keresztül beküldött adatok vagy feltöltött fájlok csak addig maradnak a szerveren, amíg a kért hash-kód generálásához szükséges. Az adatokat azonnal töröljük, mielőtt az eredményt visszaküldjük a böngészőnek.

Bemeneti adatok:



A beküldött szöveg UTF-8 kódolású. Mivel a hash függvények bináris adatokkal dolgoznak, az eredmény más lesz, mintha a szöveg más kódolású lenne. Ha egy adott kódolású szövegből kell hash-értéket kiszámítania, akkor inkább töltsön fel egy fájlt.



A CRC-32C hash algoritmusról

Nem vagyok matematikus, de megpróbálom egy egyszerű hasonlattal elmagyarázni ezt a hash függvényt. Sok kriptográfiai hash függvénytől eltérően ez nem egy különösebben bonyolult algoritmus, így valószínűleg rendben lesz ;-)

Képzelje el, hogy levelet küld e-mailben, de attól tart, hogy megsérülhet, mielőtt megérkezne a címzetthez. A levél tartalma alapján kiszámol egy CRC-32 ellenőrző összeget, és felírja a borítékra. Amikor a címzett megkapja a levelet, ki tudja számítani az ellenőrző összeget is, és megnézheti, hogy az megegyezik-e azzal, amit írtál. Ha igen, a levél nem sérült vagy változott az út során.

A CRC-32 négy lépésből áll:

1. lépés: Adjon hozzá némi extra helyet (párnázás)

  • A CRC egy kis plusz teret ad az üzenet végére (például földimogyoró csomagolása egy dobozba).
  • Ez segít a hibák könnyebb észlelésében.

2. lépés: A mágikus vonalzó (a polinom)

  • A CRC-32 speciális "mágikus vonalzót" használ az adatok mérésére.
    • Tekintsd ezt a vonalzót egyenetlenségekből és barázdákból álló mintára (ez a polinom, de ne törődj ezzel a szóval).
    • A CRC-32 leggyakoribb "vonalzója" egy rögzített minta.

3. lépés: A vonalzó elcsúsztatása (osztási folyamat)

  • Most a CRC átcsúsztatja a vonalzót az üzeneten.
    • Minden helyen ellenőrzi, hogy az egyenetlenségek és a hornyok egy vonalba esnek-e.
    • Ha nem helyezkednek el, a CRC megjegyzi (ez egyszerű XOR használatával történik, például a kapcsolók be- vagy kikapcsolásával).
    • Addig tolja és forgatja a kapcsolókat, amíg a végére nem ér.

4. lépés: A végső eredmény (az ellenőrző összeg)

  • Miután a vonalzót végigcsúsztatja a teljes üzeneten, marad egy kis szám (32 bit hosszú), amely az eredeti adatokat reprezentálja.
    • Ez a szám olyan, mint egy egyedi ujjlenyomat az üzenethez.
    • Ez a CRC-32 ellenőrző összege.

Az oldalon bemutatott verzió a CRC-32C változat, ez legyen az előnyben részesített változat, különösen, ha hardveresen gyorsított CPU-t használunk (SSE 4.2 és újabb), és nincs szükségünk más változatokkal való kompatibilitásra.

A többi változathoz is vannak kalkulátoraim:

Oszd meg a Bluesky-nOszd meg a FacebookonOszd meg a LinkedIn-enOszd meg a Tumblr-enOszd meg X-enOszd meg a LinkedIn-enPin a Pinteresten

Mikkel Bang Christensen

A szerzőről

Mikkel Bang Christensen
Mikkel a miklix.com létrehozója és tulajdonosa. Több mint 20 éves tapasztalattal rendelkezik, mint hivatásos számítógépes programozó/szoftverfejlesztő, és jelenleg teljes munkaidőben dolgozik egy nagy európai informatikai vállalatnál. Amikor nem blogol, szabadidejét érdeklődési körének, hobbijainak és tevékenységeinek széles skálájával tölti, ami bizonyos mértékig tükröződhet a weboldalon tárgyalt témák sokféleségében.