Sprawdzanie poprawności numeru PESEL
Walidacja numeru PESEL pozwala zweryfikować, czy dany numer jest poprawny formalnie – czy ma właściwą długość, format, datę urodzenia i cyfrę kontrolną. W tym artykule poznasz algorytm weryfikacji oraz skorzystasz z naszego walidatora online.
Walidator numeru PESEL
Wprowadź numer PESEL, który chcesz sprawdzić. Walidator zweryfikuje jego poprawność formalną i wyświetli szczegółowe informacje.
Co sprawdza walidator PESEL?
Nasz walidator przeprowadza kompleksową weryfikację numeru PESEL, sprawdzając następujące elementy:
Długość numeru
Numer PESEL musi składać się dokładnie z 11 znaków. Krótszy lub dłuższy ciąg jest nieprawidłowy.
Format (tylko cyfry)
Numer PESEL może zawierać wyłącznie cyfry (0-9). Litery, spacje i inne znaki są niedozwolone.
Poprawność daty urodzenia
Data zakodowana w numerze musi być możliwa – właściwy miesiąc (1-12 z modyfikacją stulecia) i dzień (odpowiedni dla danego miesiąca).
Cyfra kontrolna
Ostatnia cyfra numeru musi być zgodna z wynikiem algorytmu obliczania sumy kontrolnej.
Algorytm weryfikacji numeru PESEL
Weryfikacja numeru PESEL składa się z kilku kroków. Poniżej przedstawiamy szczegółowy algorytm:
Sprawdzenie długości
Upewnij się, że numer ma dokładnie 11 znaków. Jeśli długość jest inna, numer jest nieprawidłowy.
if (pesel.length !== 11) return false;
Sprawdzenie, czy wszystkie znaki to cyfry
Każdy znak w numerze musi być cyfrą od 0 do 9.
if (!/^\d{11}$/.test(pesel)) return false;
Weryfikacja daty urodzenia
Zdekoduj datę urodzenia z pierwszych 6 cyfr i sprawdź, czy jest to możliwa data (poprawny miesiąc i dzień).
- Rozpoznaj stulecie na podstawie numeru miesiąca
- Sprawdź, czy miesiąc mieści się w zakresie 1-12 (po odjęciu modyfikatora)
- Sprawdź, czy dzień jest poprawny dla danego miesiąca (uwzględniając lata przestępne)
Obliczenie i porównanie cyfry kontrolnej
Użyj algorytmu sumy kontrolnej, aby obliczyć oczekiwaną cyfrę kontrolną i porównaj ją z ostatnią cyfrą numeru.
Wagi: 1, 3, 7, 9, 1, 3, 7, 9, 1, 3
- Pomnóż każdą z pierwszych 10 cyfr przez odpowiednią wagę
- Zsumuj wszystkie iloczyny
- Oblicz:
reszta = suma % 10 - Cyfra kontrolna =
reszta === 0 ? 0 : 10 - reszta - Porównaj z 11. cyfrą numeru
Wynik weryfikacji
Jeśli wszystkie powyższe kroki zakończą się pomyślnie, numer PESEL jest formalnie poprawny.
Ograniczenia walidacji
Ważne jest, aby zrozumieć, czego walidator nie sprawdza:
Walidacja formalna ≠ weryfikacja w rejestrze
Nasz walidator (podobnie jak większość walidatorów online) sprawdza jedynie poprawność formalną numeru PESEL. Oznacza to, że:
- Nie sprawdzamy, czy numer został faktycznie nadany jakiejś osobie
- Nie mamy dostępu do rejestru PESEL
- Nie możemy potwierdzić, że numer należy do konkretnej osoby
- Nie weryfikujemy zgodności numeru z innymi danymi osobowymi
Poprawność formalna oznacza, że numer:
- Ma prawidłową strukturę (11 cyfr)
- Zawiera możliwą datę urodzenia
- Ma prawidłową cyfrę kontrolną
Jednak numer może być formalnie poprawny, a mimo to:
- Nigdy nie został nikomu nadany
- Został wygenerowany losowo (np. przez nasz generator)
- Jest całkowicie fikcyjny
Weryfikacja w rejestrze PESEL jest możliwa tylko dla uprawnionych podmiotów (urzędy, banki, itp.) i wymaga specjalnego dostępu do systemów państwowych.
Jakie błędy wykrywa walidacja?
Algorytm walidacji jest szczególnie skuteczny w wykrywaniu następujących typów błędów:
| Typ błędu | Przykład | Wykrywalność |
|---|---|---|
| Brakująca cyfra | 0207080362 (10 cyfr) | 100% - błąd długości |
| Dodatkowa cyfra | 020708036289 (12 cyfr) | 100% - błąd długości |
| Litera zamiast cyfry | 0207O803628 | 100% - błąd formatu |
| Pojedynczy błąd przepisania | 02070803629 (zamiast 8) | 90%+ - błąd sumy kontrolnej |
| Zamiana dwóch cyfr | 02070803682 (6↔2) | ~90% - błąd sumy kontrolnej |
| Niemożliwa data | 99133112345 (miesiąc 33) | 100% - błąd daty |
Przykłady weryfikacji
✓ Poprawny numer PESEL
Numer: 02070803628
- Długość: 11 cyfr ✓
- Format: same cyfry ✓
- Data: 8 lipca 1902 lub 2002 (MM=07) ✓
- Suma kontrolna: obliczona = 8, w numerze = 8 ✓
Wynik: PESEL jest formalnie poprawny
✗ Niepoprawny numer PESEL (błędna suma kontrolna)
Numer: 02070803629
- Długość: 11 cyfr ✓
- Format: same cyfry ✓
- Data: 8 lipca 1902 lub 2002 ✓
- Suma kontrolna: obliczona = 8, w numerze = 9 ✗
Wynik: PESEL jest niepoprawny (błędna cyfra kontrolna)
✗ Niepoprawny numer PESEL (niemożliwa data)
Numer: 99133112345
- Długość: 11 cyfr ✓
- Format: same cyfry ✓
- Data: miesiąc = 13, nie mieści się w żadnym zakresie ✗
Wynik: PESEL jest niepoprawny (niemożliwa data urodzenia)
Implementacja walidacji w kodzie
Jeśli chcesz zaimplementować walidację PESEL we własnej aplikacji, poniżej znajdziesz przykładowy pseudokod:
funkcja walidujPESEL(pesel):
// Krok 1: Sprawdź długość
jeśli długość(pesel) ≠ 11:
zwróć NIEPOPRAWNY("Zła długość")
// Krok 2: Sprawdź, czy same cyfry
jeśli pesel zawiera znaki inne niż 0-9:
zwróć NIEPOPRAWNY("Niedozwolone znaki")
// Krok 3: Sprawdź datę
rok = pesel[0:2]
miesiąc = pesel[2:4]
dzień = pesel[4:6]
// Zdekoduj stulecie
jeśli miesiąc >= 81 i miesiąc <= 92:
stulecie = 1800
miesiąc = miesiąc - 80
inaczej jeśli miesiąc >= 1 i miesiąc <= 12:
stulecie = 1900
inaczej jeśli miesiąc >= 21 i miesiąc <= 32:
stulecie = 2000
miesiąc = miesiąc - 20
// ... (dalsze stulecia)
inaczej:
zwróć NIEPOPRAWNY("Niepoprawny miesiąc")
jeśli dzień < 1 lub dzień > liczbaDniWMiesiącu(miesiąc, rok):
zwróć NIEPOPRAWNY("Niepoprawny dzień")
// Krok 4: Sprawdź sumę kontrolną
wagi = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3]
suma = 0
dla i od 0 do 9:
suma = suma + pesel[i] * wagi[i]
reszta = suma mod 10
oczekiwana = jeśli reszta = 0 to 0 inaczej 10 - reszta
jeśli pesel[10] ≠ oczekiwana:
zwróć NIEPOPRAWNY("Błędna suma kontrolna")
zwróć POPRAWNY
Przejdź do generatora PESEL
Jeśli potrzebujesz wygenerować fikcyjny numer PESEL do celów testowych lub edukacyjnych, skorzystaj z naszego generatora:
Możesz również zapoznać się z innymi materiałami:
Najczęściej zadawane pytania
Co sprawdza walidator numeru PESEL?
Walidator sprawdza: długość numeru (11 cyfr), czy numer składa się wyłącznie z cyfr, poprawność daty urodzenia oraz zgodność cyfry kontrolnej z algorytmem.
Czy walidator sprawdza, czy numer PESEL istnieje w rejestrze?
Nie. Walidator sprawdza jedynie poprawność formalną numeru. Nie ma dostępu do rejestru PESEL i nie może zweryfikować, czy numer został faktycznie nadany konkretnej osobie.
Jakie błędy wykrywa walidacja PESEL?
Walidacja wykrywa: nieprawidłową liczbę cyfr, znaki niebędące cyframi, niemożliwe daty urodzenia oraz błędną cyfrę kontrolną wynikającą np. z pomyłki przy przepisywaniu.
Czy poprawny formalnie PESEL oznacza, że należy do rzeczywistej osoby?
Nie. Numer może być poprawny formalnie (spełniać wszystkie reguły algorytmu), ale nie być nadany żadnej osobie. Walidacja formalna nie potwierdza istnienia numeru w rejestrze.
Jak obliczyć cyfrę kontrolną numeru PESEL?
Cyfra kontrolna jest obliczana poprzez pomnożenie pierwszych 10 cyfr przez wagi (1,3,7,9,1,3,7,9,1,3), zsumowanie wyników, obliczenie reszty z dzielenia przez 10 i odjęcie od 10 (jeśli reszta ≠ 0).