PayPal logo Giv en skærv! PayPal logo
KODE.porten.dk
Diverse koderier fra en krøllet hjerne...

CPR-tjekker

Skriv de første ni cifre af et CPR-nummer, tryk på knappen og se at det tiende ciffer i nummeret bliver vist korrekt. Århundrede og køn bliver vist med radioknapperne.
Eller skriv en fødselsdato, angiv selv århundrede og køn - og skab helt nye numre. Hvert tryk giver et nyt nummer.

Skriv de første ni cifre:
 
9 cifre

Eller skriv en dato:
  6 cifre Løbenummer

Dreng Pige 1858-99 1900-99 2000-36

Der er ingen risiko ved at opgive dit CPR-nummer til denne regnemaskine. Beregningen bliver foretaget via din egen computer og resultatet bliver ikke oplagret noget andet sted. Hvis du er virkelig paranoid, så sluk for dit modem inden du trykker på knapperne her ;).

Opbygning og udregning af personnumre
 
Personnummeret består af den seks-cifrede fødselsdag og et fire-cifret løbenummer til sidst. Både det første og det sidste ciffer i løbenummeret er kontrol-cifre. Det første kontrol-ciffer fortæller århundredet efter et sindrigt system - se tabellen her under. Hvis det er under fire, er det helt sikkert fra vor tid. Mellem fem og otte er det enten fra forrige eller fra næste århundrede - men ikke fra årene 37-57. Tallene fire og ni er fra nu- eller fremtid, med bedst plads til nutiden. Det tiende ciffer beregnes ud fra de ni andre.
 
Beregning af CPR-kontrolcifre
Personnumrene beregnes efter et princip, der hedder "modulo 11". Det særlige kontroltal 432765432 bruges sammen med 11-tallet til at beregne det sidste ciffer i løbenummeret med. Det sikrer, at en enkel skrivefejl i et nummer, eller et hurtigt opdigtet nummer, bliver afvist. Hvert enkelt ciffer af personnummerets ni første cifre ganges med hvert af cifrene i 432765432, deles med 11 - og derpå trækkes 11 fra menten.
For eksempel en ældre pige, der er født den 11. november 1911. Personnummeret starter derfor med 111111. De første tre cifre i det fiktive løbenummer kunne være 111 - og det sidste kontrol-ciffer skal så beregnes af fødselsdato og de tre første cifre af løbenummeret:
 
CPR-cifre:  1  1  1  1  1  1  1  1  1 
       x  x  x  x  x  x  x  x  x 
Kontroltal: 4  3  2  7  6  5  4  3  2 
       =  =  =  =  =  =  =  =  = 
       4 + 3 + 2 + 7 + 6 + 5 + 4 + 3 + 2 = 36
      36 = ( 3 x 11 ) + 3 
      11 - 3 = 8
Resultatet af gangestykket bliver 36, der så deles med 11. Det går op i 36 tre gange med 3 til rest. Til sidst trækkes 11 fra resten 3 - og det bliver 8, som er dette kontrol-ciffer. Det fulde personnummer bliver derfor 111111-1118:
Hvis "resten" var blevet 1 kan nummeret ikke beregnes, så en af de sidste tre cifre i løbenummeret skulle ændres. Et 0 som rest giver også 0 som kontrol-ciffer.
 
Denne udregning foretages af et hvert stykke software, der modtager cpr-numre. Det er derfor muligt at "liste" et forkert nummer igennem til systemer, der ikke har krav på det ægte, men alligevel forlanger det. De offentlige registre kan krydstjekke med deres egne optegnelser - men et postordrefirma må nøjes med denne beregning og de accepterer et hvert korrekt konstrueret nummer uden at brokke sig...
 
Det første kontrolciffer bestemmes af århundredet
Kontrolciffer og fødselsårÅrhundrede
0-00......0-991900 - 1999
1-00......1-991900 - 1999
2-00......2-991900 - 1999
3-00......3-991900 - 1999
4-00......4-362000 - 2036
4-37......4-991937 - 1999
5-00......5-362000 - 2036
5-37......5-57benyttes ikke
5-58......5-991858 - 1899
6-00......6-362000 - 2036
6-37......6-57benyttes ikke
6-58......6-991858 - 1899
7-00......7-362000 - 2036
7-37......7-57benyttes ikke
7-58......7-991858 - 1899
8-00......8-362000 - 2036
8-37......8-57benyttes ikke
8-58......8-991858 - 1899
9-00......9-362000 - 2036
9-37......9-991937 - 1999
 
Eksempel: En dame født 11. november 1911 med løbenummeret 1118. Første ciffer i løbenummeret er kontrol-ciffer her, og skal sammen med årstallet ses som 1-11. Hun skal derfor findes inden for rækkefølgen i skemaets linje 2:
1-00......1-991900 - 1999
Og så kan det ses, at nummeret er korrekt placeret ved 1900-tallet.
 
Den gamle dame i Gjern
Denne side er for øvrigt ikke det eneste sted, hvor det nemme CPR-nummer 111111-1118 bliver brugt som eksempel. Nummeret har faktisk eksisteret og tilhørte en ældre dame, som døde for en 5-6 år siden i Gjern. Hun væltede faktisk Gjern Kommunes budgetter nogle år, fordi andre havde anvendt dette nemme CPR-nummer. En del kommuner havde brugt nummeret, når de ikke lige havde fået fat i cpr-nummeret fra en foredragsholder og også mange andre havde fundet det frem.
Et større valuta-spekulationsfirma havde således brugt nummeret til at postere alle udenlandske kunder under, så de kunne passes ind i kartotekerne. Desværre kom firmaet til at udlevere det falske CPR-nummer med de store indtægter til skattevæsnet.
Skattevæsen troede omgående, at den gamle kone fra Gjern var blevet millionær og Gjern Kommune glædede sig og justerede budgetterne. Ingen spurgte den gamle kone, som faktisk var død og kun blev holdt i live i registrene. Det var rent sjusk og ingen havde gjort noget ulovligt, men skatteyderne i Gjern fik forhøjet trækprocenten i årene efter.
Lignende episoder har udløst retningslinjer for sådanne erstatnings-personnumre, der bevidst skal være opbygget ved en alternativ metode.
 
Droppes kontrolcifrene fra CPR-nummeret?
Med den nuværende opbygning af det 10-cifrede personnummer kan der ud fra hver fødselsdato kun beregnes omkring 540 brugbare personnumre. I 60erne blev der født så mange børn, at der for den 1. januar 1965 kun var fire mulige CPR-numre tilbage. Når der så kommer indvandrere fra de samme godt fyldte årgange til Danmark, kan systemet ikke rumme dem. For at forberede systemet til en større kapacitet, har CPR-kontoret besluttet at benytte en anden metode for løbenummer i de tilfælde, hvor alle beregnede numre er brugt op. Det skaber plads til nogle tusind flere for hver eneste dag. Ændringen var oprindeligt planlagt til først at blive taget i brug op mod år 2036, men allerede fra oktober 2007 er enkelte numre uden modulo 11 nu tildelt. Den ny metode indebærer altså ikke, at systemet med kontrolcifre forsvinder helt, men for visse numre bruges en helt anden. De overtallige numre dannes også ud fra en række beregninger - som jeg ikke gider indflette endnu :).
 
Registersamfundet
Staten arbejder mod en fortsat tættere sammenkøring af de offentlige registre. Det er kun muligt fordi Danmark har den mest effektive registrering i verden. Til sammenligning har fx England ingen centrale registre...
 

JavaScript-programmering
JavaScript-programmering giver mulighed for at styre HTML-siderne på en mere aktiv måde, som det ses. Dette er mit første forsøg (1996) og jeg har derfor valgt den klassiske opgave med udregning af cpr-nummeret - og det har givet mig en god del bøvl. Bedre kendere af JavaScript vil nok slå sig på lårene over min løsning.


Lær mere om programmet:


©pdateret 2010 - WebHamster@Porten.dk: Tom Vilmer Paamand