Moduluskontroll

Modulus-kontroll er verifisering og generering av kontrollsiffer på viktige nummer, som fx. fødselsnummer, kontonummer og KID. Kalles også CDV: Check Digit Verification.

Modulus 11 (Mod11)

Modulus 11 er i bruk i flere sammenhenger: Fødselsnummer, kontonummer, KID, m.fl. Mod11 kan gi kontrollsiffer 0-9, samt '-' i tilfelle kontrollsifferet beregnes til 10.

Fødselsnummer

Fødselsnummer består av seks siffer som representerer fødselsnummer, deretter tre siffer som er et løpenummer, og til slutt to kontrontrollsiffer. Første kontrollsiffer bruker Mod11-algoritmen, med med et helt spesielt sett med multiplikasjonsfaktorer, mens siste kontrollsiffer er helt standard Mod11. Dersom noen av kontrollsifferne beregnes til '-', så forkastes fødselsnummeret - det vil da ikke bli utstedt.

Skriv inn fødselsnr:

 

Forbehold: Det er kun kontrollsifferne (2 siste siffer) som sjekkes i forhold til resten av fødselsnummeret. Det foretas ingen sjekk av om datoen er en gyldig dato, eller om individnummeret (7.-9. siffer) er mulig for den angitte datoen.

Les mer om fødselsnummer på Skatteetaten sine sider.

Generer kontrollsiffer til fødselsnummer

Skriv inn 9 første siffer av fødselsnr:

 

Kontonummer

Kontonummer bruker helt standard Mod11, i tillegg er det krav om de fire første sifferne representerer riktig bank og at kontonummeret er på 11 tegn. Dersom kontrollsifferet blir '-', så forkastes kontonummeret og brukes ikke.

Skriv inn kontonr:

 

Forbehold: Det er kun kontrollsifferet (siste siffer) som sjekkes i forhold til resten av kontonummeret. Det foretas ingen sjekk av om bankregisternummeret (4 første siffer) er gyldig. I tillegg til sjekk av kontrollsiffer, så verifiseres det at kontonummeret er 11 tegn langt.

Sjekk av Orgnr, KID, ISBN, strekkoder etc. (MOD11)

Skriv inn nummeret:

 

Beregning av kontrollsiffer - MOD11

Skriv inn grunnlagstallet:

 

Modulus10 (Mod10)

Modulus10 kalles Luhn's algoritme, og er en annen algoritme enn Modulus11, og brukes fx. til validering av KID-nr på bankgiroer. Les mer på Wikipedia. Jeg har laget VBA-kode for dette, og den er implementer i et Excel-dokument også.

Sjekk av KID etc. (MOD10)

Skriv inn KID (eller annet tall som skal valideres):

 

Beregning av kontrollsiffer - MOD10

Skriv inn grunnlagstallet:

 

Eksempel med fødselsnummer

I eksemplet her bruker jeg som et eksempel fødselsnummeret 26059765131.

Beregning av 1. kontrollsiffer

Man tar utgangspunkt i de 9 første sifferne (her 260597651). Først multipliserer man siffer for siffer med følgende tallrekke: 3, 7, 6, 1, 8, 9, 4, 5 og 2. Deretter summerer man resultatene. Så finner første kontrollsiffer ved å trekke "resten" man får når man deler dette på 11 (herav navnet modulus11-kontroll), og trekker denne "resten" fra 11. Hvis kontrollsifferet blir 11, så settes det til 0, og hvis det blir 10, så er det ikke gyldig (da må det genereres et nytt individnummer).

Eksempel: Fødselnummeret er 26059765131. De første 9 sifferne, som danner utgangspunktet for å beregne kontrollsifferet, er 260597651. Nedenfor vises regnestykket:

Siffer nr.SifferMultiplikatorMultiplum
1236
26742
3060
4515
59872
67963
76424
85525
9122
Sum:239

Denne summen deler man på 11, og får da en "rest" på 8 (11x21=231, 239-231=8). Dette trekker vi fra 11, og får da 3 (11-8=3).

Første kontrollsiffer skal være 3, og det stemmer i vårt tilfelle.

Beregning av 2. kontrollsiffer

Framgangsmåten er tilsvarende som for 1. kontrollsiffer, men man tar utgangspunkt i de 10 første sifferne (her 2605976513), og tallrekken er annerledes: 5, 4, 3, 2, 7, 6, 5, 4, 3 og 2. Egentlig er tallrekken 2 til 7 bakenifra, og man begynner på 2 igjen på det syvende sifferet bakenifra.

Dette er også måten å finne kontrollsifferet til kontonummer på, da de har kun et kontrollsiffer.

Eksempel: Fødselsnummeret (eller like gjerne kontonummeret) er 26059765131. De første 10 sifferne, som danner utgangspunktet for å beregne kontrollsifferet, er 2605976513. Nedenfor vises regnestykket:

Siffer nr.SifferMultiplikatorMultiplum
12510
26424
3030
45210
59763
67642
76530
85420
9133
10326
Sum:208

Denne summen deler man på 11, og får da en "rest" på 10 (11x18=198, 208-198=10). Dette trekker vi fra 11, og får da 1 (11-10=1).

Andre kontrollsiffer skal være 1, og det stemmer i vårt tilfelle.

Eksempel med KID og Mod10

Man starter med utgangspunktet, som kan være et tall med hvilket som helst lengde, innenfor rimelighetens grenser... og tallrekken er annerledes: 1 og 2 om hverandre, og man starter med 2 bakfra. Dersom multiplikasjonen gir et resultat som er større enn eller lik 10, så trekkes ifra 9.

Eksempel: KID er 3000924872. De første 9 (i dette tilfellet) sifferne, som danner utgangspunktet for å beregne kontrollsifferet, er 300092487. Nedenfor vises regnestykket:

Siffer nr.SifferMultiplikatorMultiplumMultiplum justert
13266
20100
30200
40100
592189 (18-9)
62122
74288
88188
972145 (14-9)
Sum:38

Denne summen (38) deler man på 10, og får da en "rest" på 8. Dette trekker vi fra 10, og får da 2.

Kontrollsifferet skal være 2, og det stemmer i vårt tilfelle.

Copyright © Alf Kåre Lefdal.