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:

1

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;
2

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;
3

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)
4

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

  1. Pomnóż każdą z pierwszych 10 cyfr przez odpowiednią wagę
  2. Zsumuj wszystkie iloczyny
  3. Oblicz: reszta = suma % 10
  4. Cyfra kontrolna = reszta === 0 ? 0 : 10 - reszta
  5. Porównaj z 11. cyfrą numeru
5

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:

Przejdź do generatora PESEL

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).