Suma lub cyfra kontrolna - cd.

System PESEL - rys historyczny szczegóły w Wikipedii

Rok 1970
Decyzja Prezydium Rządu z dnia 9.06.1970r. w sprawie przygotowania koncepcji Powszechnego Elektronicznego Systemu Ewidencji Ludności, którego zadaniem będzie kompleksowe ujęcie tematu „człowiek” jako centralnego podmiotu całej gospodarki.

Rok 1972
Opracowane zostały wstępne założenia koncepcji Powszechnego Elektronicznego Systemu Ewidencji Ludności,
• koncepcja przewidywała tworzenie systemu PESEL w oparciu o podstawowe i powszechne ewidencje osobowe będące w gestii resortu spraw wewnętrznych tj. ewidencje stanu cywilnego, dowodów osobistych, adresowe, zmian imion i nazwisk,
• wszystkie inne ewidencje osobowe prowadzone na terenie kraju miały uzupełniać swoimi informacjami zbiory podstawowe i pobierać z nich potrzebne informacje,
• informacje zawarte w systemie PESEL, w miarę jego rozwoju powinny powodować zanik dublowania tych informacji we wszystkich innych zbiorach.

Rok 1973
Decyzją Prezydium Rządu z 5.07.1973r. Ministerstwo Spraw Wewnętrznych wspólnie z innymi resortami zostało zobowiązane do uruchomienia podsystemu PESEL, obejmującego ewidencję osób z wyższym wykształceniem zwanego systemem MAGISTER.

Rok 1974
Decyzja Prezydium Rządu z 11.01.1974r. definiuje PESEL jako „rządowy system zautomatyzowanego gromadzenia, przetwarzania i udostępniania informacji o ludności kraju obejmujący podstawowe cechy demograficzne i służący potrzebom gospodarowania kadrami, planowania gospodarczego oraz usprawniania procesów administrowania”.

Nadawanie numeru PESEL

Art. 18.

  1. Numer PESEL jest nadawany:
    1. z urzędu - osobie, o której mowa w art. 8 ust. 1;
    2. na wniosek - osobie, o której mowa w art. 8 ust. 2.
  2. Numer PESEL nadaje minister właściwy do spraw wewnętrznych.
  3. Nadanie numeru PESEL jest czynnością materialno-techniczną.

Numer PESEL jest zmieniany w przypadku:

  • zmiany daty urodzenia;
  • zmiany płci osoby;
  • nadania numeru PESEL na skutek omyłki organu administracji mającej wpływ na numer PESEL lub wprowadzenia w błąd organu administracji o tożsamości osoby.

Numer PESEL - cyfra kontrolna

Dla numeru PESEL algorytm obliczenia cyfry kontrolnej przebiega następująco: każdej z pozycji cyfr numeru nadany został stały współczynnik zwany wagą pozycji. Każdą cyfrę numeru mnoży się przez odpowiednią wagę i sumuje się wynik mnożenia. Otrzymany wynik dzieli się modulo 10 i odejmuje od 10.

  • Uwaga: linki juz nieaktualne NB. powyższy opis spotykany jest w polskim Internecie {np. http://republika.pl/stepa/cyfra.htm (Stepa), http://dione.ids.pl/~radek/code/pesel.html (Radosław Roszczyk), http://www.zse.bydgoszcz.pl/~sunio/kody.html (Marcin Sulecki) } i zawiera pewien drobny błąd: Brak opisu co należy zrobić jeśli po sumowaniu iloczynów ostatnia cyfra będzie zerem. Oczywiście różnica 10-x wyjdzie 10 i wtedy należy przyjąć 0 jako cyfrę kontrolną a nie 10.
    Ten sam błąd występuje w opisach i w algorytmach zastosowanych w formularzach do weryfikacji numerów PESEL, REGON itd. stworzonych już po opublikowaniu niniejszego tekstu (np. pliszak) - trochę wstyd - prawda ?
    aktualizacja 2018 poprawiony
    A ostatnio (13.8.2005) stwierdziłem, że ten błąd jest także popełniony na stronie Ministerstwa Spraw Wewnętrznych i Administracji dotyczącej właśnie (link nieaktualny) http://www.mswia.gov.pl/portal/pl/381/32/PESEL.html#w%20jaki%20spos%C3%B3b Systemu PESEL - tym razem to straszny wstyd – we wrześniu 2009 nadal błąd jest nie poprawiony.
    Także na stronie http://www.pko.pl/f/pesel.htm błędnie jest weryfikowany numer PESEL z powodu tego samego błędu. (6.2.2006)

Jak łatwo zauważyć odjęcie wyniku od 10 nic w zasadzie nie zmienia ale widocznie twórcy systemu PESEL (Powszechy Elektroniczny System Ewidencji Ludności) dostali rozkaz (a były to lata siedemdziesiąte) aby trochę utrudnić rozszyfrowanie tego systemu zachodnim szpiegom :-).
Ale z doniesień czytelnika tej strony wynika, że cały system PESEL, chyba nawet z komputerami, był kupiony od Szwedów, więc o tajemnicy nie ma mowy. :-(
Ale ... w Szwecji personnummer, odpowiednik numeru PESEL ma tylko 10 cyfr, cyfrę kontrolną oblicza się według metody Luhn'a, algorytmu, w którym mnożnikami są przemiennie 1 i 2. Wspólnymi cechami z systemem szwedzkim są: sześciocyfrowy zapis daty urodzenia, oznaczenie płci w numerze i położenie cyfry kontrolnej na końcu numeru.

W dokumencie „Wstępne zalożenia koncepcji PESEL” z 1972 r. zaproponowano obliczanie cyfry kontrolnej z wagami 2 1 2 1 2 1 2 1 2 1. W roku 1975 już w dokumentach pokazano współczynniki wagowe 1379137913
Więcej o zawartości informacyjnej systemu PESEL można znaleźć w wikipedii

Algorytm jest w zasadzie modyfikacją ogólniejszego algorytmu stosowanego przy weryfikacji numerow NIP, REGON, ISBN, ISSN, EAN itd. W ogólnym algorytmie sumę iloczynów cyfr i wag dzieli się modulo N (oblicza resztę z dzielenia przez N). Dla N=10 wynik dzielenia modulo N jest po prostu ostatnią cyfrą sumy.

 Oto przykład dla numeru PESEL 49040501580

    1 3 7 9 1 3 7 9 1 3    --> wagi
    X X X X X X X X X X Y  --> cyfry nr PESEL (Y- cyfra kontrolna)

czyli:       
            1 3 7 9 1 3 7 9 1 3
         *  4 9 0 4 0 5 0 1 5 8
        -----------------------
suma=(1*4+3*9+7*0+9*4+1*0+3*5+7*0+9*1+1*5+3*8)=
    =(  4+ 27+  0+ 36+  0+ 15+  0+  9+  5+ 24)=  120
 
          120 mod 10 = 0

           10 - 0 =  10   ----> cyfra kontrolna ?
 korekta: dla wyniku 10   ----> cyfra kontrolna = 0

Uzyskany wynik jest cyfrą kontrolną numeru, który w naszym przypadku ma postać: 49040501580 i dotyczy kobiety urodzonej: 5 kwietnia 1949 roku. W przypadku wprowadzenia błędnego numeru PESEL, komputer po obliczeniu cyfry kontrolnej może ten błąd wykryć, gdyż np: jeśli pomylimy się i zamiast 49040501580 podamy 46040501580 to otrzymamy:

            1 3 7 9 1 3 7 9 1 3
         *  4 6 0 4 0 5 0 1 5 8
        -----------------------
suma=(1*4+3*6+7*0+9*4+1*0+3*5+7*0+9*1+1*5+3*8)=
    =(  4+ 18+  0+ 36+  0+ 15+  0+  9+  5+ 24)=  111
          111 mod 10 = 1
           10 - 1 =  9

Obliczona cyfra kontrolna to 9, podczas gdy prawidłowa cyfra to 0. Oczywiście może nastąpić przypadek błędnego wprowadzenia także ostatniej cyfry.
W tym przykładzie łatwo sie pomylić gdyż na formularzu drukowanym na drukarce igłowej cyfra 0 jest podobna do cyfry 8. Wtedy algorytm przepuści błędne dane.

Weryfikacja numeru PESEL
może być wykonana według podobnego, ale prostszego algorytmu:
Do cyfr wagowych dla dziesięciu cyfr dopisujemy wagę równą 1 dla cyfry kontrolnej - czyli dla jedenastej cyfry. Sumujemy iloczyny kolejnych cyfr i ich wag. Jeśli ostatnia cyfra wyniku wynosi 0 (zero) to numer PESEL jest prawidłowy.

Łukasz Pilorz (2006) bardzo sprytnie zauważył, że "... wystarczy zmienić kolejność wag na 9-7-3-1, by pozbyć się za jednym zamachem dodatkowego kroku i problemu "10-0=10".

Ale ściśle rzecz biorąc nie chodzi o zamianę kolejności wag 1-3-7-9 ale o użycie wag, które są dopełnieniem starych wag do liczby użytej jako modulo sumy iloczynów.

              10 10 10 10
  stare wagi  -1 -3 -7 -9
  ________________________
  nowe wagi    9  7  3  1

dla nowych wag:       
            9 7 3 1 9 7 3 1 9 7
         *  4 9 0 4 0 5 0 1 5 8
        -----------------------
suma=(9*4+7*9+3*0+1*4+9*0+7*5+3*0+1*1+9*5+7*8)=
    =( 36+ 63+  0+  4+  0+ 35+  0+  1+ 45+ 56)=  240
 
          240 mod 10 = 0  wynik jest cyfrą kontrolną 
                          nie wymaga odejmowania od 10          

Alternatywne zestawy wag do weryfikacji - (dopisane 27.10.2011r)

Do algorytmu weryfikacji można też użyć innych zestawów wag.
Powszechnie znany w internecie zestaw wag: (1 3 7 9 1 3 7 9 1 3 1). Następne zestawy: (3 9 1 7 3 9 1 7 3 9 3), (9 7 3 1 9 7 3 1 9 7 9), (7 1 9 3 7 1 9 3 7 1 7).

Jaki jest związek między tymi czterema zestawami wag? Dla członków MENSY nie powinno być problemu z odgadnięciem :-)

Druga zagadka. Skoro każdy z tych czterech zestawów może byc użyty, to który z nich jest używany przez MSWiA i system PESEL? Niestety nie dotarłem do oficjalnego dokumentu na ten temat.

Dlaczego w wagach użyto cyfr 1 3 7 9 ? Proszę zwrócić uwagę, że w wagach brak jest cyfry 5. Dlaczego?
Ponieważ gdyby była cyfra 5 to przy pomyłkowym wprowadzeniu 3 zamiast 5 otrzymalibyśmy wprawdzie inną sumę kontrolną, ale cyfra kontrolna byłaby taka sama: bo 5x5=25, 3x5=15 i oba wyniki kończą się tą samą cyfrą 5
Z tych samych powodów w wagach nie występuje żadna liczba parzysta, a tym bardziej zero!

Bardziej matematyczny dowód sensowności użycia wag 1 3 7 9 przy dzieleniu modulo 10 oraz wyższość dzielenia modulo 11 pokazałem na stronie wagi. Jest tam także analizowana odporność powyższych wag i wag algorytmu Luhna na czeskie błędy.

Weryfikacja sensowności numeru PESEL

Jak wiadomo w numerze PESEL są zakodowane informacje o dacie urodzenia i płci danej osoby. Prawdziwość numeru PESEL, tzn. czy konkretny numer PESEL jest przypisany jakiejś osobie, można tylko zweryfikować w samym systemie PESEL. A do tego systemu mają on-line tylko dostęp wybrane urzędy. Zwykły obywatel może się dowiedzieć za pieniądze!

Można natomiast, oprócz cyfry kontrolnej, sprawdzić sensowność daty urodzenia.

Przykładowy numer PESEL =49040501580 zdekodujemy:

49 oznacza rok urodzenie 1949,
04 oznacza miesiąc 4. czyli kwiecień,
05 oznacza dzień 5.

A jak jest załatwiany problem wieku XIX, XX, XXI?
Dla wieku XX do numeru miesiąca dodaje się 00 - czyli nic się nie dodaje. Dla wieku XXI dodaje się 20, dla wieku XXII dodaje się 40, dla wieku XXIII dodaje się 60. Natomiast 80 dodaje się do numeru miesiąca dla wieku XIX.

Wiadomo, że numer roku może przyjąć dowolną wartość od 00 do 99, natomiast numer miesiąca wartości od 01 do 12. Gorzej jest z numerem dnia w miasiącu gdyż jest to wartość zmienna w zakresie od 1 do 31. W różnych miesiącach może to być 30 lub 31, a dla lutego może być to 28 lub 29 zależnie od przestępności roku. Jednym słowem trzeba użyć jakiejś procedury, która sprawdzi poprawność daty. W języku programowania PHP i Javascript używanych powszechnie do obróbki danych w serwisach internetowych jest to dość proste.

Krótko:   taki PESEL   00000000000 ma prawidłową cyfrę kontrolną, ale jest w oczywisty sposób bezsensowny. Rozkodowana data urodzenia to:
rok=1900 miesiąc=00 dzień=00
Raczej bez sensu. Niestety niektóre weryfikatory pokazują takie bzdury. Patrz przykładowy program sprawdzacz:
https://code.google.com/archive/p/sprawdzacz/
Pokazuje w wersji 0.4 W wersji 0.5 już poprawiono
Program także reaguje na błędną datę w PESELu. Numer 19222900001 ma poprawną cyfrę kontrolną, ale data 29 lutego 2019 nie istnieje.

Czy algorytm sumy kontrolnej jest optymalny ?

W jednym z tekstów w internecie podano, że stopa błędów tego algorytmu wynosi 2,3% - być może chodzi o czeskie błędy. Ale według mnie wynosi 10% co łatwo wyliczyć jeśli uwzględnimy, że cyfra kontrolna może przyjąć 10 wartości, z których jedna jest prawidłowa. Z elementarnego rachunku prawdopodobieństwa wychodzi 1/10*100% = 10%.
Co więcej, wskutek przyjęcia tych samych wag dla cyfr roku i cyfr dnia algorytm jest podatny na błędne podanie daty urodzenia przy nadawaniu numeru PESEL przez tajne (brak jego strony w internecie) Rządowe Centrum Informatyczne "PESEL" lub jego terenowy oddział. Pamiętajmy, że w numerze PESEL zakodowana jest data urodzenia konkretnej osoby. Dla przykładu osoba urodzona 11 maja 1912 roku powinna być zakodowana jako 120511xxxxk. Tymczasem przy wprowadzaniu łatwo się pomylić i wpisać w kolejności dzień miesiąc rok jako: 110512xxxxk. Oba takie numery PESEL będą miały tę samą cyfrę kontrolną.

Ciekawostki w kodowaniu numeru PESEL

  • Dwie pierwsze cyfry oznaczają ostatnie dwie cyfry w roku urodzenia. Dla przykładu osoba urodzona w roku 1966 ma w numerze PESEL 66mmddxxxxk.
  • Cyfra trzecia i czwarta oznaczają miesiąc urodzenia.
  • Ale jeśli dana osoba urodziła się przed rokiem 1900, ale po roku 1800 to do liczby miesiąca dodaje się 80. Dla przykładu: osoba urodzona 1 grudnia 1898 ma numer PESEL 989201xxxxk
  • Osoby urodzone w roku 2000 i później mają powiększony numer miesiąca o liczbę 20. Dla przykładu osoba urodzona 1 grudnia 2000 będzie miała numer PESEL 003201xxxxk
  • Cyfry piąta i szósta oznaczają dzień urodzenia.
  • W cyfrach siódmej, ósmej, dziewiątej i dziesiątej zakodowany jest numer seryjny :-) danego osobnika.
  • W dziesiątej cyfrze PESEL zakodowana jest jednocześnie płeć osoby: nieparzysta oznacza mężczyznę, a parzysta kobietę. Ciekawostka: w wielu podobnych do PESELa numerów nadawanych w krajach europejskich nieparzysta cyfra oznacza mężczyznę a parzysta kobietę.
  • W jedenastej jest oczywiście słynna cyfra kontrolna.
  • Na razie brak danych do rozkodowania innych informacji tam zawartych. Nie wiadomo, na przykład, co decyduje czy dana kobieta jako kod płci dostanie 0, 2, 4, 6 czy 8.  . . . badania trwają :-)

    NB1 Oto tekścik na ten temat w dodatku "Komputer" do Gazety Wyborczej z 1995 roku.
    NB2 Według niektórych opinii (uwaga jednego czytelników tego tekstu) " ... 'nr seryjny' jest zakodowany na cyfrach 7-10, tylko kobietom są przydzielane kolejne numerki parzyste, a chłopcom - kolejne nieparzyste.
    A co do innych zakodowanych informacji, to jeśli by tam takowe były, to byłoby to absolutnie nielegalne w świetle ustawy o ochronie danych osobowych (coś tam takiego jest, że nadawanie cyfrom ukrytych znaczeń we wszelkich numerach ewidencyjnych jest zabronione - oprócz oznaczenia płci i daty urodzenia). Ale kto wie... ;)))"
    (moja uwaga na temat ukrytego znaczenia) - system PESEL powstał na długo przed ustawą o ochronie danych osobowych - więc nie musiał być z nią zgodny.

  • W styczniu 2001 zauważyłem stroniczkę na temat Centralnych Rejestrów Państwowych PESEL na serwerze Ministerstwa Spraw Wewnętrznych i Administracji. Jest tam troszkę informacji na ten temat. W roku 2005 był aktualny raczej ten link "http://www1.mswia.gov.pl/index.php?dzial=72&id=32" , ale w roku 2008 jest jeszcze gdzie indziej PESEL.
  • Ostatnio zdobyłem z pewnej bazy danych sporą pulę numerów PESEL (bez nazwisk i innych danych osobowych, żeby uspokoić GIODO, RODO i SRODO:) i mogłem przeanalizować 'numery seryjne' zawarte w peselu. Okazuje się, że nie są to numery kolejne. Bowiem najwyższy numer seryjny jaki widziałem w tej puli wynosił (RRMMDDnnnnK) nnnn=9896. Nie wyobrażam sobie ażeby w dniu, w którym urodziła się ta kobieta urodziło się prawie dziesięć tysięcy dzieci. Według mnie ten 'numer seryjny' został wygenerowany sztucznie, a nie jako kolejny numer osobniczy. Dlaczego - tego już nie wiem.
    Przy okazji tej analizy potwierdziła się pewna dziwaczność jeśli chodzi o rozkład częstotliwości urodzeń w ciągu roku. Patrz moje odkrycie.
  • Pytanie: ile rodzi się dzieci każdego dnia?
    Tu jest dokładna liczba: gazeta.pl Cytat : "Główny Urząd Statystyczny podaje w raporcie 'Podstawowe informacje o sytuacji demograficznej Polski w 2011 roku', że w 2011 r. urodziło się ok. 391 tys. dzieci. Jest to ponad 22 tys. mniej niż przed rokiem. W latach 2003-2009 odnotowano stopniowy wzrost liczby urodzin z 351 tys. do 417,6 tys. W 2010 roku urodziło się już tylko 413 tys. dzieci."
    Jest też tam wykres dla lat od 1946 do teraz:

    Liczba urodzeń w Polsce od roku 1946 w tysiącach. Dane GUS

    Z tego wykresu wynika, że maksimum wyszło w latach 1951-56 i wynosiło ok 800tys/rok

    Czyli rocznie to było maksymalnie 800 tys dzieci.
    Dziennie daje to 800000/365 = 2192 dzieci na dzień.
    Ale w ciągu roku ta liczba się waha, więc przyjmijmy, że to jest maksymalnie 3tys dzieci na dzień. Przyjmijmy 1500 dziewczynek i 1500 chłopców.

    Jeżeli ponumerujemy wszystkie te dzieci urodzone tego samego dnia to ostatnie dziecko będzie miało numer 3000. Kolejnymi liczbami parzystymi numerujemy dziewczynki, a nieparzystymi numerujemy chłopców.
    Przypuśćmy, że dzieci się urodziły 1 stycznia 1999 roku.
    Pierwsza dziewczynka wpisana do rejestru PESEL będzie miała numer PESEL = 990101 0000 2
    Pierwsza część to data urodzenia, druga to numer kolejny a ostatnia to cyfra kontrolna.
    Pierwszy chłopiec będzie miał numer PESEL 990101 0001 9.
    Ostatnia dziewczynka może mieć numer PESEL 990101 3000 1.

    Jak więc widać, cztery cyfry na numer kolejny wystarczają.
    Pamiętajmy, że wykorzystujemy też cyfrę do kodowania płci, ale ta ósma cyfra ma dziesięć różnych wartości. Połowa z nich jest dla dziewczynek, a połowa dla chłopców.
    A siódma cyfra to nie tylko 0 i 1.
    W zbiorze różnych prawdziwych numerów PESEL na siódmym miejscu mam:
    2737 razy cyfrę 0, 648 razy cyfrę 1, 25 razy cyfrę 2, 5 razy cyfrę 3, dwa razy cyfrę 4, trzy razy cyfrę 5, dwa razy cyfrę 6, jeden raz cyfrę 8.

  • Przykład kodu php do weryfikacji numeru PESEL
    <?php 
    function vpesel($PESEL,$sex="?") {
     if ($PESEL[9] % 2 and $sex=="K") return false;
       else if (!$PESEL[9] % 2 and $sex!="M") return false;
     $w = array(1,3,7,9);
     for ($i=0;$i<=9;$i++)
       $wk = ($wk+$PESEL[$i]*$w[$i % 4]) % 10;
     $k = (10-$wk) % 10;
     if ($PESEL[10]==$k) return true;
       else return false;
    }
    ?>
    

    Zatem funkcja:

    bool(string pesel [,string sex])

    zwraca true jeżeli nr PESEL jest poprawny, w przeciwnym wypadku false.

    Przykłady wywołań:

    vpesel("74021834012") - jeżeli nie mamy informacji o płci
    vpesel("74021834012","M"); - jeżeli wiemy, że to mężczyzna
    vpesel("74021834012","K"); - jeżeli wiemy, że to kobieta

    Powyższy kod i komentarz pochodzi z
    http://www.szewo.com/php/pesel.phtml

    Pan Arkadiusz Kusznierski (wrzesień 2008) napisał:
    Pozwolę sobie na mały komentarz odnośnie poprawności działania algorytmu. ...
    W kodzie php (funkcja vpesel) ... jest mały błąd.
    http://www.mswia.gov.pl/pl?dzial=&id=6628 W linii nr 4 jest warunek $sex!="M" natomiast na stronie www.szewo.com/php/pesel.phtml warunek ten ma postać $sex=="M".
    Moim zdaniem poprawny jest warunek $sex=="M".
    Jeśli funkcję vpesel wywołamy nie znając płci (na przykład vpesel("80031317708");) to warunek $sex!="M" będzie prawdą ponieważ argument domyślny funkcji $sex ma wartość "?". Wtedy dla numerów pesel posiadających na przedostatniej pozycji 0 (zero) cały warunek pętli if w linii 4 będzie prawdą i funkcja zwróci false. A nie powinna. Jeśli wywołujemy funkcję vpesel bez podawania płci linie 3 i 4 nie powinny zwracać false. W takim przypadku algorytm powinien wykonać się do końca.

    Przetestowałem obie wersje funkcji (starszą i nowszą) i stwierdziłem, że obie dają w pewnych sytuacjach błędy. Nowsza daje mniej błędów :)


    Proszę zwrócić uwagę na wynik trzeci od dołu. Cyfra 2 wskazuje, że to kobieta. Testujemy czy to Mężczyzna, a funkcja mówi, że to prawda.

    Poprawiony kod funkcji daje poprawny wynik dla wszystkich testowanych przypadków


    Diabeł tkwi w szczegółach.
    Aktualny kod 'szewo':
    else if (!$PESEL[9] % 2 and $sex=="M") return false;
    Mój poprawiony kod:
    else if (!($PESEL[9] % 2) and $sex=="M") return false;
    Proszę zwrócić uwagę na wzięcie w nawias wyniku dzielenia modulo, przez co wymuszamy zmianę kolejności działań.

    Kod programu testującego vpesel1.php

    Arkadiusz napisał potem: Operator negacji ma wyższy priorytet niż operator modulo co powoduje, że negacja zawsze wykona się przed działaniem modulo.
    Wprowadzenie nawiasów zamienia tę kolejność i o to nam chodzi.
    Brak tych dodatkowych nawiasów powodował błąd dla PESEL nr 74021834025, natomiast nałożenie się dwóch błędów (brak nawiasów i warunek $sex!="M") powodował błędy dla nr PESEL mających 0 (zero) na 9 pozycji (np. dla PESEL nr 80031317708).
    Brak nawiasów powoduje, że operacja negacji jest wykonywana na argumentach z zakresu od 0 do 9. Interpreter php przed wykonaniem negacji dokona niejawnej konwersji typów z integer na boolean. Jeśli było 0 (zero) to przekonwertuje na false, a jeśli argumenty były z przedziału od 1 do 9 to przekonwertuje na true. To właśnie powoduje błędy.

    Mała ciekawostka na koniec. Wywołanie vpesel("aleglupitxt"); zwróci true, więc warto zabezpieczyć funkcję vpesel przed takim wywołaniem.


  • Kod arkusza Excela do obliczenia cyfry kontrolnej dla wielu wprowadzonych numerów PESEL — niewielka przeróbka umożliwia weryfikację.
    arkusz pesel3.xls (44kB)
  • Ciekawostka: w wielu podobnych do PESELa numerów nadawanych w krajach europejskich nieparzysta cyfra na pewnej pozycji oznacza mężczyznę a parzysta kobietę. I co ciekawsze po zmianie płci przydzielany jest nowy numer :)

Tak zwany System PESEL2

Komunikat o zakończeniu realizacji Projektu PESEL2 - serwer MSWiA

Realizacja Projektu PESEL2, tworzonego przez MSWiA w ramach działania 1.5 Sektorowego Programu Operacyjnego Wzrost Konkurencyjności Przedsiębiorstw, została zakończona dnia 30 września 2008 roku.

W grudniu 2007 roku, z uwagi na znaczące opóźnienia w realizacji Projektu w latach 2005-2007, MSWiA opracowało plan naprawczy, który zakładał istotne ograniczenie zakresu projektu do elementów realizowalnych w czasie pozostałym do rozliczenia projektu. Uzgodniony zakres usług obejmował gruntowną modernizację infrastruktury sprzętowej centralnych rejestrów państwowych wraz z uruchomieniem w jej środowisku e-usług. Z powodzeniem wykonano modernizację systemu rejestrów państwowych funkcjonującego na przestarzałym środowisku informatycznym "JANTAR" (pochodzącym z lat 70-tych). Zrealizowano również następujące usługi:

  1. "Weryfikacja istnienia dowodu osobistego, zawierającego określony zestaw danych w bazie aktualnych dowodów osobistych" - po podaniu określonych informacji zawartych w dowodzie osobistym usługa wyszukuje dokument w Ogólnokrajowej Ewidencji Wydanych i Unieważnionych Dowodów Osobistych. W przypadku, gdy podane informacje będą zgodne z zapisami w bazie danych, system zwróci informację o pomyślnej weryfikacji.
  2. "Weryfikacja danych adresowych osób ewidencjonowanych w rejestrze PESEL" - na podstawie danych osoby i wskazanego adres, usługa pozwala zweryfikować, czy osoba jest zameldowana pod podanym adresem.
  3. "Udostępnianie danych adresowych osób ewidencjonowanych w rejestrze PESEL" - po wprowadzeniu danych osoby usługa pozwala uzyskać jej bieżący adres zameldowania.

Usługi są dostępne dla przedsiębiorców: pierwsze dwie w trybie teletransmisji, a trzecia przez elektroniczną Platformę Usług Administracji Publicznej.

Przebudowując rejestry państwowe, zdecydowano się wykorzystać rozwiązania technologiczne pozwalające sprawnie i dynamicznie zreformować eksploatowane systemy w celu ich dostosowania do planowanego odmiejscowienia czynności urzędowych. Pomyślnie zrealizowane zadania nakreślone w ramach planu naprawczego stanowią podstawy do rozpoczęcia przez MSWiA prac nad projektem pl.ID - elektronicznym dokumentem tożsamości.

17 listopada 2008


PESEL Wstępne założenia koncepcji

W opublikowanej w 1972 roku pracy PESEL Wstępne założenia koncepcji,
przedstawiono uzasadnienie budowy samego identyfikatora osobowego, zwanego teraz numerem PESEL oraz organizację częściowo scentralizowanego systemu nadawania tych identyfikatorów.

W przedstawionej koncepcji zaproponowano by data urodzenia była w kolejności dd-mm-rr. Aktualnie w identyfikatorze jest kolejność rr-mm-dd.

Zaproponowany wtedy sposób kodowania daty urodzenia w XIX, XXI, XXII i XXIII pozostał bez zmian.

Wstępnie zaproponowana metoda obliczania cyfry kontrolnej opierała się o inny zestaw współczynników wagowych (2 1 2 1 2 1 2 1 2 1).

„Osoba urodzona w dniu 5 lipca 2002, płci męskiej, której przydzielono numer serii 2345 posiadać będzie następujący identyfikator.

                0   5   2   7   0   2   2   3   4   5 ·
             ×  2   1   2   1   2   1   2   1   2   1
               --------------------------------------
                0 + 5 + 4 + 7 + 0 + 2 + 4 + 3 + 8 + 5 = 38 
                 10 - 8 = 2 
        Cyfra kontrolna = 2

Pełny identyfikator ma więc postać: 05270223452.”

13 września 2022



ciąg dalszy


          Licznik = (od 21 lipca 2000)
          ostatnie poprawki

Valid HTML 4.01!