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.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.
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: