Controlecijfer
Uit Wikipedia, de vrije encyclopedie
Een controlecijfer of checksum is een manier om te controleren of het lezen of overzenden van gegevens zonder fouten is verlopen. In het geval van korte codes in het handelsverkeer spreekt men doorgaans van controlecijfer, in de informatica meestal van checksum.
[bewerk] Noodzaak van foutdetectie
Veel manieren om gegevens te lezen, over te brengen of op te slaan zijn niet 100% betrouwbaar. Om te kunnen controleren of er een fout opgetreden is, kan een controlecijfer worden toegevoegd. Dit wordt berekend uit de gegevens die zijn gelezen of verstuurd. Achteraf wordt de checksum opnieuw berekend en vergeleken met de opgeslagen of meegestuurde versie. Als de twee niet overeenkomen is er een fout opgetreden. De foutdetectie van een checksum is beperkt: bij een meervoudige fout zal het controlecijfer wel kunnen kloppen.
Een meer geavanceerde methode van foutherkenning is de Cyclic Redundancy Check of CRC. Met nog betere methodes zoals de Hammingcode kan de fout niet alleen gevonden maar ook hersteld worden.
[bewerk] Getallen en codes waarin checksums voorkomen
- streepjescode;
- ISBN;
- CAS-nummer;
- EG-nummer;
- serienummers van bankbiljetten;
- bankrekeningnummers en burgerservicenummers (zie Elfproef);
- nummers van spoorwegmaterieel, zie Controlecijfer (spoorwegen).
Men kwam checksums in de tijd van de homecomputer ook vaak tegen bij programma's in hexadecimale machinetaal of BASIC die vroeger vanaf papier ingegeven moest worden. Het is een aparte code die vaak aan het eind van een invoer regel volgde en het product is van de controle getalswaarde. Als een van de invoer tekens niet klopt, wordt uitvoer geweigerd en kun je pas verder als na correctie wel de juiste tekens op een rijtje staan.
Een streepjescodelezer, zoals bij de kassa van de supermarkt, piept als hij een code gelezen heeft. Piept hij niet, dan is er wellicht een fout in de controlesom ontstaan door een leesfout. Het probleem is snel verholpen door het nog eens te proberen.
[bewerk] Voorbeeld checksum CAS-nummer
Dit nummer bestaat uit maximaal 9 cijfers, verdeeld in 3 groepjes die gescheiden zijn met een streepje. Het meest rechtse cijfer (R) is de uitkomst van de checksum en is de rest, die wordt bepaald door de volgende formule gedeeld door 10:
Als deze rest 10 is wordt een "X" als laatste "cijfer" geschreven.
Voorbeelden:
geeft als rest 2 (want en 52 − 50 = 2).
geeft als rest 0.