Wpisany przez Michał Kwiatek,
02 marca 2008 20:02
Dowód osobisty jest dokumentem stwierdzającym tożsamość osoby i poświadczającym jej obywatelstwo. Jak każdy dokument posiada unikalny identyfikator w tym przypadku jest to seria i numer dowodu.
Seria dowodu to 3 litery które w trakcie sprawdzania jego cyfry kontrolnej zamienia się na wartości liczbowe wg poniższego wzoru:
Natomiast numer dowodu osobistego to 6 cyfr z czego pierwsza cyfra to cyfra kontrolna.
Aby obliczyć cyfrę kontrolną należy wartość każdego znaku identyfikatora (za wyjątkiem cyfry kontrolnej) pomnożyć przez odpowiednią wagę. Wagi te to, kolejno: 7 3 1 7 3 1 7 3. Następnie iloczyny te sumuje się i dzieli modulo 10.
Sprawdzimy poprawność numeru: ABS 123456
Reszta z dzielenia 211 mod 10 = 1.
Jak widać wynik oraz cyfra kontrolna są sobie równe, zatem podany numer dowodu osobistego jest prawidłowy.
Seria dowodu to 3 litery które w trakcie sprawdzania jego cyfry kontrolnej zamienia się na wartości liczbowe wg poniższego wzoru:
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
Natomiast numer dowodu osobistego to 6 cyfr z czego pierwsza cyfra to cyfra kontrolna.
Aby obliczyć cyfrę kontrolną należy wartość każdego znaku identyfikatora (za wyjątkiem cyfry kontrolnej) pomnożyć przez odpowiednią wagę. Wagi te to, kolejno: 7 3 1 7 3 1 7 3. Następnie iloczyny te sumuje się i dzieli modulo 10.
Przykład:
Sprawdzimy poprawność numeru: ABS 123456
Dane: | A | B | S | 1 | 2 | 3 | 4 | 5 | 6 |
Wartość: | 10 | 11 | 28 | (1) | 2 | 3 | 4 | 5 | 6 |
Waga: | 7 | 3 | 1 | - | 7 | 3 | 1 | 7 | 3 |
Iloczyn: | 70 | 33 | 28 | - | 14 | 9 | 4 | 35 | 18 |
Suma: | 70 + 33 + 28 + 14 + 9 + 4 +35 +18 = 211 |
Reszta z dzielenia 211 mod 10 = 1.
Jak widać wynik oraz cyfra kontrolna są sobie równe, zatem podany numer dowodu osobistego jest prawidłowy.
Przykład w JavaScript:
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C/C++ | .cpp | .cpp | ***** / 5 | |
Tomasz Lubiński | Delphi/Pascal | .pas | .pas | ***** / 6 | |
Tomasz Lubiński | Java | .java | .java | ***** / 9 | |
Tomasz Lubiński | JavaScript | .js | .js | ***** / 3 | |
Karol Gontarski | JavaScript | sprawdzenie w jednej linii | .js | .js | ***** / 5 |
Romek Żyłła | JavaScript | skrócenie i dodatkowy test | .js | .js | ***** / 6 |
Mariusz Tomaszewski | Php | .php | .php | ***** / 9 | |
pako | Python | .py | .py | ***** / 5 |
Poprawiony: 29 sierpnia 2012 20:08
wipos.p.lodz.pl/zylla/ut/js-pesel.html
Litery serii doszły dopiero do ATW (czerwiec 2011). Są jeszcze ATX ATY i ATZ oraz seria zaczynająca się od BAA
Chciałbym taki dwuliterowy zobaczyć :)
Według mnie z dwiema literami to paszport albo jakiś inny dokument tymczasowy lub cudzoziemca.
15625000000 czyli 1,5 MLD - tylu ludzi nigdy w Polsce na pewno nie będzie
z tego co się orientuję to jest 15 miliardów, sześćset dwadzieścia pięć milionów, a nie 1,5 miliarda ;)
Dlaczego? Trzeba zajrzeć na stronę:
wipos.p.lodz.pl/zylla/ut/paszport.html#seriado
Do tego rachunku trzeba wprowadzić poprawkę gdyż do dyspozycji nie ma 26 liter ale tylko 25. Tak więc poprawnie jest 25^3*10^5= 1 562 500 000 kombinacji.
Z drugiej strony prawdopodobnie nowe dowody z czipem zaczną się od serii BAA.
PS średnia wydawanych rocznie dowodów się zmienia +/- 50%
Zielona linia to aproksymacja.
Na początku roku 2013 była wydawana seria AVY - brak danych dla drugiego stycznia.
W końcu roku 2013, a dokładnie 27 grudnia wydano dowód serii AXN.
jeżeli numer miesiąca jest następujący to pierwsze 2 cyfry roku są następujące:
81-92: 1800-1899
01-12: 1900-1999
21-32: 2000-2099
41-52: 2100-2199
61-72: 2200-2299
musisz zatrudnić się w urzędzie :)