CRC-32C hash kód kalkulátor
Megjelent: 2025. február 17. 18:44:48 UTC
Utolsó frissítés: 2026. január 12. 11:37:23 UTC
CRC-32C Hash Code Calculator
A ciklikus redundancia-ellenőrzés (CRC) egy hibaészlelő kód, amelyet általában a nyers adatok véletlen 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ű kimenetet (32 bit) előállítani változó hosszúságú bemenetből. Az ezen az oldalon bemutatott verzió a CRC-32C variáns, amely egy újabb, "okosabb" (jobb hibaészlelésű) verzió, amelyet gyakran hardveresen gyorsítanak a 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 elmagyarázni ezt a hash függvényt egy egyszerű analógiával. Sok kriptográfiai hash függvénytől eltérően ez nem egy különösebben bonyolult algoritmus, szóval valószínűleg rendben lesz ;-)
Képzeld el, hogy levelet küldesz postán, de attól tartasz, hogy az megsérülhet, mielőtt megérkezik a címzetthez. A levél tartalma alapján kiszámítasz egy CRC-32 ellenőrzőösszeget, és ezt ráírod a borítékra. Amikor a címzett megkapja a levelet, ő is kiszámíthatja az ellenőrzőösszeget, és megnézheti, hogy az megegyezik-e azzal, amit írtál. Ha igen, akkor a levél nem sérült meg vagy változott meg az út során.
A CRC-32 ezt egy négylépéses folyamaton keresztül valósítja meg:
1. lépés: Adjon hozzá extra helyet (kitöltés)
- A CRC egy kis plusz helyet ad az üzenet végéhez (például földimogyoró dobozba csomagolásakor).
- Ez segít abban, hogy könnyebben észrevegye a hibákat.
2. lépés: A mágikus vonalzó (a polinom)
- CRC-32 egy speciális „mágikus vonalzót” használ az adatok méréséhez. Képzelj el ezt a vonalzót egy dudorokból és barázdákból álló mintázatként (ez a polinom, de ne aggódj a szó miatt). A CRC-32 leggyakoribb „vonalzója” egy fix minta.
3. lépés: A vonalzó csúsztatása (osztási folyamat)
- A CRC most végighúzza a vonalzót az üzeneten. Minden ponton ellenőrzi, hogy a kiemelkedések és barázdák egy vonalban vannak-e. Ha nem illeszkednek, a CRC feljegyzi (ezt egyszerű XOR művelettel lehet megtenni, például a kapcsolók be- és kikapcsolásával). Addig húzogatja és kapcsolgatja a kapcsolókat, amíg el nem éri a végét.
4. lépés: A végeredmény (az ellenőrzőösszeg)
- Miután a vonalzót végighúztad az egész üzeneten, egy kis szám (32 bit hosszú) marad, amely az eredeti adatot jelöli. Ez a szám olyan, mint az üzenet egyedi ujjlenyomata. Ez a CRC-32 ellenőrzőösszeg.
Az oldalon bemutatott verzió a CRC-32C variáns, amelynek az előnyben részesített változatnak kell lennie, különösen akkor, ha hardveres gyorsítással rendelkező CPU-t használsz (SSE 4.2 és újabb), és nincs szükséged más variánsokkal való kompatibilitásra.
Vannak kalkulátoraim a többi változathoz is:
- Link
- Link
További olvasmányok
Ha tetszett ez a bejegyzés, akkor ezek a javaslatok is érdekelhetik:
