CRC-32B Hash Kode Sakrekenaar
Gepubliseer: 17 Februarie 2025 om 18:32:04 UTC
Laas opgedateer: 12 Januarie 2026 om 09:16:28 UTC
CRC-32B Hash Code Calculator
Sikliese Redundansiekontrole (CRC) is 'n foutopsporingskode wat algemeen gebruik word om toevallige veranderinge aan rou data op te spoor. Alhoewel dit tegnies nie 'n kriptografiese hash-funksie is nie, word CRC-32 dikwels 'n hash genoem as gevolg van sy vermoë om 'n vaste-grootte uitvoer (32 bisse) van veranderlike-lengte invoer te produseer. Die weergawe wat op hierdie bladsy aangebied word, is die CRC-32B-variant, wat eintlik net 'n eienaardigheid in die PHP-taal is wat die bisse omdraai (little-endian teenoor big-endian in die oorspronklike CRC-32).
Volledige openbaarmaking: Ek het nie die spesifieke implementering van die hash-funksie wat op hierdie bladsy gebruik word, geskryf nie. Dit is 'n standaardfunksie wat by die PHP-programmeertaal ingesluit is. Ek het net die webkoppelvlak gemaak om dit vir gerief hier publiek beskikbaar te maak.
Oor die CRC-32B Hash-algoritme
Ek is nie 'n wiskundige nie, maar ek sal probeer om hierdie hash-funksie met 'n eenvoudige analogie te verduidelik. Anders as baie van die kriptografiese hash-funksies, is dit nie 'n besonder ingewikkelde algoritme nie, so dit sal waarskynlik oukei wees ;-)
Stel jou voor jy stuur 'n brief in die pos, maar jy is bekommerd dat dit beskadig kan word voordat dit by die ontvanger aankom. Gebaseer op die inhoud van die brief, bereken jy 'n CRC-32-kontrolesom en skryf dit op die koevert. Wanneer die ontvanger die brief ontvang, kan hy of sy ook die kontrolesom bereken en kyk of dit ooreenstem met wat jy geskryf het. Indien wel, is die brief nie beskadig of verander langs die pad nie.
Die manier waarop CRC-32 dit doen, is 'n vierstapproses:
Stap 1: Voeg ekstra spasie (opvulling) by
- CRC voeg 'n bietjie ekstra ruimte aan die einde van die boodskap by (soos om grondboontjies in 'n boks te pak).
- Dit help dit om foute makliker raak te sien.
Stap 2: Die Magiese Liniaal (Die Polinoom)
- CRC-32 gebruik 'n spesiale "magiese liniaal" om die data te meet. Dink aan hierdie liniaal soos 'n patroon van knoppe en groewe (dit is die polinoom, maar moenie oor daardie woord bekommerd wees nie). Die mees algemene "liniaal" vir CRC-32 is 'n vaste patroon.
Stap 3: Die liniaal skuif (delingsproses)
- Nou skuif CRC die liniaal oor die boodskap. By elke plek kyk dit of die hobbels en groewe in lyn is. As hulle nie in lyn is nie, maak CRC 'n aantekening (dit word gedoen met behulp van eenvoudige XOR, soos om skakelaars aan of af te skakel). Dit hou aan om skakelaars te skuif en te draai totdat dit die einde bereik.
Stap 4: Die finale resultaat (die kontrolesom)
- Nadat jy die liniaal oor die hele boodskap geskuif het, bly jy oor met 'n klein getal (32 bisse lank) wat die oorspronklike data verteenwoordig. Hierdie getal is soos 'n unieke vingerafdruk vir die boodskap. Dit is die CRC-32-kontrolesom.
Die weergawe wat op die bladsy aangebied word, is die CRC-32B-variant, wat meestal 'n PHP-kenmerk is wat die bisvolgorde omskakel (little-endian teenoor big-endian). Jy moet waarskynlik slegs hierdie weergawe gebruik as jy spesifiek versoenbaarheid met 'n ander PHP-toepassing wat dit gebruik, benodig.
Ek het ook sakrekenaars vir die ander variante:
- Skakel
- Skakel
Verdere Leeswerk
As jy hierdie plasing geniet het, sal jy dalk ook van hierdie voorstelle hou:
