Miklix

CRC-32B Hashcodecalculator

Gepubliceerd: 17 februari 2025 om 18:29:33 UTC
Laatst bijgewerkt: 12 januari 2026 om 09:15:52 UTC

Een hashcodecalculator die de CRC-32B (Cyclic Redundancy Check 32 bit, B variant) hashfunctie gebruikt om een hashcode te berekenen op basis van tekstinvoer of een geüpload bestand.

Deze pagina is machinaal uit het Engels vertaald om hem voor zoveel mogelijk mensen toegankelijk te maken. Helaas is machinevertaling nog geen geperfectioneerde technologie, dus er kunnen fouten optreden. Als je dat liever hebt, kun je hier de originele Engelse versie bekijken:

CRC-32B Hash Code Calculator

Cyclic Redundancy Check (CRC) is een foutdetectiecode die vaak wordt gebruikt om onbedoelde wijzigingen in ruwe data te detecteren. Hoewel CRC-32 technisch gezien geen cryptografische hashfunctie is, wordt het vaak wel een hash genoemd vanwege de mogelijkheid om een uitvoer van vaste grootte (32 bits) te produceren uit een invoer van variabele lengte. De versie die op deze pagina wordt gepresenteerd, is de CRC-32B-variant, die in feite slechts een eigenaardigheid in de PHP-taal is die de bits omdraait (little-endian versus big-endian in de originele CRC-32).

Full disclosure: Ik heb de specifieke implementatie van de hashfunctie die op deze pagina wordt gebruikt niet geschreven. Het is een standaardfunctie die wordt meegeleverd met de programmeertaal PHP. Ik heb alleen de webinterface gemaakt om hem hier voor het gemak publiekelijk beschikbaar te maken.


Nieuwe Hashcode berekenen

Gegevens die via dit formulier worden verzonden of bestanden die via dit formulier worden geüpload, worden niet langer op de server bewaard dan nodig is om de gevraagde hashcode te genereren. Ze worden onmiddellijk verwijderd voordat het resultaat naar uw browser wordt teruggestuurd.

Invoergegevens:



De ingediende tekst is UTF-8 gecodeerd. Aangezien hashfuncties werken op binaire gegevens, zal het resultaat anders zijn dan wanneer de tekst in een andere codering zou zijn. Als je een hash moet berekenen van een tekst in een specifieke codering, moet je in plaats daarvan een bestand uploaden.



Over het CRC-32B-hashalgoritme

Ik ben geen wiskundige, maar ik zal proberen deze hashfunctie uit te leggen met een simpele analogie. In tegenstelling tot veel cryptografische hashfuncties is dit geen bijzonder ingewikkeld algoritme, dus het zal vast wel lukken ;-)

Stel je voor dat je een brief verstuurt, maar je bent bang dat hij beschadigd raakt voordat hij bij de ontvanger aankomt. Op basis van de inhoud van de brief bereken je een CRC-32-controlecijfer en schrijf je dat op de envelop. Wanneer de ontvanger de brief ontvangt, kan hij of zij ook het controlecijfer berekenen en controleren of het overeenkomt met wat jij hebt geschreven. Als dat zo is, is de brief niet beschadigd of gewijzigd tijdens de verzending.

De manier waarop CRC-32 dit doet, is een proces in vier stappen:

Stap 1: Voeg wat extra ruimte toe (opvulling)

  • CRC voegt een beetje extra ruimte toe aan het einde van het bericht (net zoals je piepschuimkorrels in een doos stopt).
  • Hierdoor worden fouten gemakkelijker opgespoord.

Stap 2: De magische liniaal (het polynoom)

  • CRC-32 gebruikt een speciale "magische liniaal" om de gegevens te meten. Zie deze liniaal als een patroon van bulten en groeven (dit is het polynoom, maar maak je geen zorgen over dat woord). De meest voorkomende "liniaal" voor CRC-32 is een vast patroon.

Stap 3: Het verschuiven van de liniaal (deelproces)

  • Nu schuift CRC de liniaal over het bericht. Op elke plek controleert het of de bultjes en groeven op één lijn liggen. Als ze niet op één lijn liggen, maakt CRC een aantekening (dit gebeurt met een eenvoudige XOR-bewerking, zoals het aan- of uitzetten van schakelaars). Het blijft schuiven en schakelaars omzetten totdat het einde is bereikt.

Stap 4: Het eindresultaat (de controlesom)

  • Nadat je de liniaal over het hele bericht hebt bewogen, blijft er een klein getal over (32 bits lang) dat de oorspronkelijke gegevens vertegenwoordigt. Dit getal is als een unieke vingerafdruk voor het bericht. Dit is de CRC-32-checksum.

De versie die op deze pagina wordt getoond, is de CRC-32B-variant. Dit is voornamelijk een eigenaardigheid van PHP die de bitvolgorde omdraait (little-endian versus big-endian). Je kunt deze versie het beste alleen gebruiken als je specifiek compatibiliteit nodig hebt met een andere PHP-applicatie die deze variant gebruikt.

Ik heb ook rekenmachines voor de andere varianten:

  • Link
  • Link

Verder lezen

Als je dit bericht leuk vond, vind je deze suggesties misschien ook interessant:


Delen op BlueskyDelen op FacebookDelen op LinkedInDelen op TumblrDelen op XDelen op LinkedInPin op Pinterest

Mikkel Christensen

Over de auteur

Mikkel Christensen
Mikkel is de bedenker en eigenaar van miklix.com. Hij heeft meer dan 20 jaar ervaring als professioneel computerprogrammeur/softwareontwikkelaar en werkt momenteel fulltime voor een groot Europees IT-bedrijf. Als hij niet blogt, besteedt hij zijn vrije tijd aan een breed scala aan interesses, hobby's en activiteiten, die tot op zekere hoogte weerspiegeld kunnen worden in de verscheidenheid aan onderwerpen op deze website.