Wydatki rosną w miarę dochodów.
Algorytmy: Liczby kontrolne
  |   PESEL  |   NIP  |   REGON  |   Numer banku  |   Numer rachunku bankowego  |  
Weryfikacja numeru PESEL
Numer PESEL jest to 11-cyfrowy, stały symbol numeryczny, jednoznacznie identyfikujący określoną osobę fizyczną.

Zbudowany jest z następujących elementów:

- cyfry [1-6] - data urodzenia w postaci: rrmmdd

- cyfry [7-9] - liczba porządkowej

- cyfra [10] - płeć (cyfry parzyste oznaczają płeć żeńską, nieparzyste) - męską)

- cyfra [11] - cyfra kontrolna

Dla odróżnienia poszczególnych stuleci przyjęto następującą metodę kodowania:

- dla lat 1900 do 1999 - miesiąc zapisywany jest w sposób naturalny

- dla lat 1800-1899-80: miesiąc = miesiąc + 80

- dla lat 2000-2099-20: miesiąc = miesiąc + 20

- dla lat 2100-2199-40: miesiąc = miesiąc + 40

- dla lat 2200-2299-60: miesiąc = miesiąc + 60

Algorytm weryfikacji numeru PESEL jest następujący:

  1. Każda z pozycji numeru ewidencyjnego posiada stały współczynnik zwany wagą pozycji.
     
  2. Każdą cyfrę numeru ewidencyjnego mnożymy przez odpowiednią wagę: 1-3-7-9-1-3-7-9-1-3
     
  3. Sumujemy wyniki mnożenia.
     
  4. Otrzymany wynik dzielimy modulo 10 i odejmuje od 10.
     
  5. Jeżeli wynikiem jest 10, to przyjmujemy 0.
     
  6. Otrzymany wynik jest cyfrą kontrolna numeru PESEL i powinien być równy jego ostatniej cyfrze.
     
Sprawdź swój PESEL:

Wpisz w okienko swój numer PESEL

Weryfikacja identyfikatora NIP

NIP (Numer Identyfikacyjny Płatnika) jest numerem identyfikującym osoby lub podmioty gospodarcza w systemie rozliczeń podatkowych. Numer ten jest przydzielany przez odpowiedni Urząd Skarbowy każdemu płatnikowi. Składa się on z dziesięciu cyfr. Pierwsze dziewięć cyfr identyfikuje płatnika, ostatnia jest cyfrą kontrolną.

Algorytm weryfikacji numeru NIP jest następujący:

  1. Każda z pozycji numeru identyfikacyjnego posiada stały współczynnik zwany wagą pozycji.
     
  2. Każdą cyfrę numeru identyfikacyjnego mnożymy przez odpowiednią wagę: 6-5-7-2-3-4-5-6-7
     
  3. Sumujemy wyniki mnożenia.
     
  4. Otrzymany wynik dzielimy modulo 11.
     
  5. Jeżeli wynikiem jest 10, to przyjmujemy 0.
     
  6. Otrzymany wynik jest cyfrą kontrolna numeru NIP i powinien być równy jego ostatniej cyfrze.
     
Sprawdź swój NIP:

Wpisz w okienko swój numer NIP (bez znaków "-")

Weryfikacja identyfikatora REGON
REGON jest numerem identyfikującym podmioty gospodarcze w Polskim Rejestrze Gospodarki Narodowej. Numer ten jest wydawany przy uruchamianiu działalności. Składa się z siedmiu lub dziewięciu cyfr. Ostatnia cyfra jest cyfrą kontrolną.

Algorytm weryfikacji numeru REGON jest następujący:

  1. Każda z pozycji numeru identyfikacyjnego posiada stały współczynnik zwany wagą pozycji.
     
  2. Każdą cyfrę numeru identyfikacyjnego mnożymy przez odpowiednią wagę:
     
    2-3-4-5-6-7 - dla numeru REGON 7-cyfrowego
    8-9-2-3-4-5-6-7 - dla numeru REGON 9-cyfrowego
     
  3. Sumujemy wyniki mnożenia.
     
  4. Otrzymany wynik dzielimy modulo 11.
     
  5. Jeżeli wynikiem jest 10, to przyjmujemy 0.
     
  6. Otrzymany wynik jest cyfrą kontrolna numeru REGON i powinien być równy jego ostatniej cyfrze.
Weryfikacja numeru banku
Numery banku w Polsce składają sie z 8 cyfr, z których ostatnia jest cyfrą kontrolną.

Algorytm weryfikacji numeru banku jest następujący:

  1. Każda z pozycji numeru banku posiada stały współczynnik zwany wagą pozycji.
     
  2. Każdą cyfrę numeru identyfikacyjnego mnożymy przez odpowiednią wagę: 7-1-3-9-7-11-3
     
  3. Sumujemy wyniki mnożenia.
     
  4. Otrzymany wynik dzielimy modulo 10.
     
  5. Otrzymany wynik jest cyfrą kontrolna numeru banku i powinien być równy jego ostatniej - ósmej - cyfrze.
     
Weryfikacja numeru rachunku bankowego IBAN
Nowe oznakowania rachunków bankowych jest już prawie zgodne z systemem IBAN: 2 początkowe cyfry to właśnie cyfry kontrolne.
          65 1060 0076 0000 3200 0005 7153

Aby uzyskać pełną zgodność należy dodać przed numerem litery PL:
          PL65 1060 0076 0000 3200 0005 7153

Numery systemu IBAN (International Bank Account Number) zostały wprowadzone normą ISO-13616 w celu weryfikacji numerów kont bankowych w międzynarodowym przepływie pieniędzy. Numer IBAN składa się z dwuliterowego kodu kraju według normy ISO-3166 (dla Polski są to litery PL), dwucyfrowej liczby kontrolnej oraz numeru konta bankowego BBAN według systemu wybranego w danym kraju i danym banku. Numer konta BBAN może być dowolnej długości (do 30 znaków), ale długość musi być stała dla danego kraju. Numer konta może zawierać cyfry 0-9 i wielkie litery alfabetu łacińskiego A-Z. Do celów prezentacyjnych np. na wydrukach można numer IBAN dzielić na grupy 4-ro znakowe oddzielając je znakiem spacji.

Przyjęty przy weryfikacji system cyfr kontrolnych zgodny z ISO-7064 nie posługuje się wagami, ale traktuje numer IBAN jako liczbę całkowitą, która powstaje przez przesunięcie 4 początkowych znaków na koniec (kod kraju i dwucyfrowa liczba kontrolna), zamianę liter łacińskich A-Z na liczby całkowite od 10 do 35.

Weryfikacja składa się z następujących kroków:

  1. Usuwamy niealfanumeryczne znaki - np. spacje, myślniki itd.
     
  2. Przesuwamy 4 pierwsze znaki na koniec numeru konta.
     
  3. Zamieniamy litery na dwucyfrowe liczby: A=10, B=11, ... Y=34, Z=35.
     
  4. Dzielimy całkowicie liczbę z poprzedniego kroku przez 97.
     
  5. Jeżeli reszta z dzielenia wyniosła 1 to numer IBAN jest prawidłowy.
     

Natomiast wyliczanie cyfr kontrolnych numeru konta przebiega według następującego algorytmu:

  1. Tworzymy numer IBAN wraz z kodem kraju, a w miejscu cyfr kontrolnych wstawiamy 00.
     
  2. Przesuwamy 4 pierwsze znaki na koniec numeru konta.
     
  3. Zamieniamy litery na dwucyfrowe liczby: A=10, B=11, ... Y=34, Z=35.
     
  4. Dzielimy całkowicie liczbę z poprzedniego kroku przez 97 i resztę z dzielenia odejmij od 98.
     
  5. Jeżeli reszta z dzielenia jest jednocyfrowa to dopisujemy 0 przed tą cyfrą.
     

Uwaga: języki programowania nie wykonują działąń na tak dużych liczbach całkowitych. W trakcie obliczeń należy podzielić długi ciąg cyfr na mniejsze porcje i na nich zrobić obliczenia. Liczba cyfr w podzielonych liczbach zależy od typu zmiennej całkowitej jaki wybierzemy do reprezentacji tych liczb. Np.:

      123456789012  dzielimy na dwie liczby:
      123456  i  789012
           123456 MOD 97 = 72
      resztę z dzielenia dopisujemy na początku drugiego fragmentu liczby:
           72789012 MOD 97 = 18
      to jest właśnie wynik dzielenia całkowitego liczby 123456789012 przez 97.

Dzielenie długich liczb całkowitych można także wykonać używając procedury rekurencyjnej lub iteracyjnej.


Przy opracowaniu algorytmów korzystałem m. in. z materiałów na stronie https://romek.info/ut/kody.html

« wstecz