Cyfry kontrolne - cd.
Inne numery
W przypadku innych identyfikatorów (ISBN, NIP, REGON, nr konta bankowego)
metoda jest taka sama jak dla numeru, zmieniają się tylko wagi oraz czynnik
modulo.
Dla identyfikatora NIP
wagi wynoszą kolejno 6,5,7,2,3,4,5,6,7 Modulo 11
(i nie odejmujemy już tej wartości od 10!)
Przykład dla numeru identyfikacyjnego NIP 768-000-24-66
6 5 7 2 3 4 5 6 7 -> wagi
* 7 6 8 0 0 0 2 4 6 -> nr NIP (bez cyfry kontr.)
---------------------
suma= (6*7+5*6+7*8+2*0+3*0+4*0+5*2+6*4+7*6)=
= ( 42+ 30+ 56+ 0+ 0+ 0+ 10+ 24+ 42)= 204
204 mod 11 = 6 ----> cyfra kontrolna
Uwaga:
a co zrobić gdy wynik dzielenia modulo 11 wyjdzie 10 ?
Jest to niemożliwe gdyż numery NIP są tak generowane aby
nigdy nie zaszedł przypadek, żeby (suma mod 11) wyszła 10.
Po prostu Urząd nadaje kolejny numer i sprawdza czy
(suma mod 11) wyszło 10. Jeśli tak to numer jest zwiększany
o 1 i obliczna jest nowa cyfra kontrolna.
Uwaga2:
Tzw. VAT europejski dla polskich podmiotów gospodarczych
to po prostu zwykły NIP poprzedzony literami PL.
Zasady weryfikacji numerów NIP i podobnych w krajach europejskich
zostały opisane na stronie
www.pruefziffernberechnung.de/U/USt-IdNr.
Tłumaczenie z niemieckiego na angielski wykonane dzięki
http://babelfish.altavista.com/babelfish/
Uwaga czytelnika tej strony: tłumaczenie zawiera błędy powstałe z bezmyślnego
przetłumaczenia wszystkiego co się tam znalazło na język angielski.
Przykładowo kod państwa Hiszpanii (ES) został przetłumaczony na angielski
odpowiednik IT (Włochy) oraz błędy w źródle na stronie niemieckiej
2+3+12+6+18+5+18+7+10=45 wg Niemców - powinno być chyba
81
Sprawdzenie VATu europejskiego można dokonać w Urzędzie Skarbowym
lub drogą elektroniczną numery.vat@mofnet.gov.pl. Nasz NIP stanie
się VATem europejskim dopiero po zgłoszeniu w Urzędzie Skarbowym
i zapisaniu w odpowiedniej bazie danych. Sprawdzanie w tej bazie można
dokonać na stronie
VAT Information Exchange System (VIES).
Uwaga: Trzy pierwsze cyfry numeru NIP oznaczają prefiks przydzielony do
Urzędu Skarbowego, który wystawił dany numer. Początkowo w prefiksie występowały
cyfry 1..9, a więc nie występowała cyfra 0. W prefiksie najniższe trzy pierwsze
cyfry to 111, a najwyższe to 998.
Uwaga2: W roku 2004 złamano tę zasadę i przydzielono kilkudziesięciu urzędom
prefiksy, które miały jako drugą cyfrę zero - na ten przydział załapała
się słynna już Włoszczowa.
Weryfikcję numeru NIP i dekodowanie nazwy Urzędu Skarbowego
wykonuje mały skrypt
Podmiot gospodarczy - firmę można namierzyć znając jej NIP lub REGON
Nowsza wersja: Firmę można namierzyć znając jej NIP, REGON lub KRS
Uwaga: 2010 w internecie jest kilka błędnych skryptów, które błędnie
weryfikują numer NIP 1234567890 jako prawidłowy.
A to jest szczególny przypadek gdy Suma MOD 11 = 10
http://www.biznesforum.pl/sprawdz-nip-pesel-regon.php
http://dlafirmy.info.pl/sprawdz_numer_nip/ (poprawiony 16.03.2010)
http://www.spolki.biz/sprawdz_nip_i_pesel.php
podejrzewam, że korzystają z tego samego błędnego algorytmu.
Przykładowa implementacja w php
$NIP = '';
for($i=0;$i='0') && ($dana[$i]<='9') ) $NIP = $NIP . $dana[$i];
if(strlen($NIP)==10) {
$sum = 0;
for ( $i=0; $i< 9; ++$i )
$sum += $NIP{$i} * substr('657234567', $i, 1);
if ($sum % 11 == $NIP{9} ) return true;
}
return false;
Identyfikator REGON
REjestr podmiotów GOspodarki Narodowej został utworzony uchwałą Rady
Ministrów z dnia 17 października 1975 r. (Monitor Polski nr 35 poz. 211).
Według Rozporządzenia Rady Ministrów z dnia 27 lipca 1999 r.
(Dz. U. Nr 69, poz. 763)
Krajowy rejestr urzędowy podmiotów gospodarki narodowej, zwany dalej
"rejestrem podmiotów", obejmujący:
1) osoby prawne,
2) jednostki organizacyjne nie mające osobowości prawnej,
3) osoby fizyczne prowadzące działalność gospodarczą,
w tym prowadzące indywidualne gospodarstwa rolne,
oraz ich jednostki lokalne,
jest prowadzony przez Prezesa Głównego Urzędu Statystycznego
w sposób zinformatyzowany i nosi skróconą nazwę REGON.
Dla identyfikatora REGON 7-mio cyfrowego
wagi wynoszą kolejno 2,3,4,5,6,7
Dla identyfikatora REGON 9-cio cyfrowego
wagi wynoszą kolejno 8,9,2,3,4,5,6,7
sumę dzielimy Modulo 11
Przykład dla numeru identyfikacyjnego REGON 590096454
* 5 9 0 0 9 6 4 5 -> nr REGON (bez cyfry kontr.)
8 9 2 3 4 5 6 7 -> wagi
-------------------
suma= (8*5+9*9+2*0+3*0+4*9+5*6+6*4+7*5)=
= ( 40+ 81+ 0+ 0+ 36+ 30+ 24+ 35)= 246
246 mod 11 = 4 ----> cyfra kontrolna
Uwaga:
warto zauważyć, że wynik dzielenia modulo 11 może wyjść 10.
Ponieważ cyfry "10" brak (a znaku X jak w numerze ISBN się
tu nie stosuje) to w tym przypadku jako cyfrę kontrolną
należy przyjąć 0.
Uwaga2:
Niestety na wielu stronach internetowych brak powyższej
uwagi w opisach weryfikacji REGONu, z czego wyniknęły
poważne awantury na forum dla fotomodelek i fotografów.
Uwagi Arkadiusza Domańskiego - czytelnika tej strony
- na temat znaczenia cyfr w numerze REGON.
"Dawno temu, REGON był 7-cyfrowy, i numery były nadawane centralnie.
Później (chyba ok. 1985-90r.) rozszerzono REGON na 9 cyfr, gdzie regonom
"starym" (7-cyfrowym) po prostu dołożono na początku 2 zera, a nowe zaczęto
tworzyć wg klucza:
2 cyfry wyróżnika województwa + 6 cyfr "nru seryjnego" + 1 cyfra kontrolna.
Województw było 49 i miały nadane kolejne numery nieparzyste - od 01
(warszawskie) do 97 (chyba zielonogórskie). Numer woj.łódzkiego był 47.
Tak więc numerów parzystych na 2 cyfrze (do 1999 roku) być nie mogło.
Po reformie administracyjnej zmieniła się liczba województw, ale numery
REGON nadawane obecnie mają ten sam przedrostek, co przed reformą 1999 roku.
Tzn. WUS w Warszawie nadal nadaje numery zaczynające się od 01, w Płocku od 61,
w Radomiu od 63 itd. mimo że Płock i Radom nie są teraz miastami wojewódzkimi.
NB. Obecne województwa mają numerki parzyste, od 02 do 32.
Ponadto, od 01.01.1999r identyfikator REGON może mieć 9 znaków (jak
dotychczas), ale może być też uzupełniony o dodatkowych 5 cyfr - taki
14-cyfrowy numer nazywa się "identyfikatorem jednostki lokalnej". Chodzi
z grubsza o to, żeby można było rozróżnić fabrykę w Gdańsku od fabryki
w Katowicach, które są własnością jednej firmy z Warszawy. Do tej pory
wszystkie takie jednostki posługiwały się jednym, wspólnym regonem, a
teraz pierwsze 9 cyfr jest wspólne, a różnią się na tych dodatkowych
5 cyfrach. Do tego, te dodatkowe 5 cyfr mają tylko te przykładowe dwie
fabryki, a firma-matka z Warszawy ma regon starego typu: 9-cyfrowy.
Uffff... (to wszystko wynika z rozporządzenia pt "Sposób i metodologia
prowadzenia i aktualizacji rejestru podmiotów gospodarki narodowej...",
Dz.U.99.69.763)
I pytanie: jaki jest algorytm wyliczania piątej cyfry kontrolnej w tym
dodatkowym 5-cyfrowym członie?
Uzupełnienie powyższych informacji (maj 2007)
Prefix 00 może się pojawić na początku numeru REGON dla bardzo starych
numerów gdy 7-io cyfrowy REGON rozszerzano do 9-iu cyfr.
Obecnie - teoretycznie po reformie 1999r - dla nowo nadawanych numerów
dwie pierwsze cyfry oznaczają numer nowego województwa ale...
Z powodu dużo większej liczby małych firm pojemność numeryczna REGONU
może się wyczerpać i co jakiś czas kolejne województwo może wystąpić
o nową pulę numerów z pierwszymi dwiema cyframi np. 36, 38, 40 itd.
Z powodu bałaganiarstwa Sejmu początkowe dwie cyfry "04" przydzielono do
zakonów, kościołów i związków wyznaniowych - ten numer - prefiks był
dany przez GUS województwu kujawsko-pomorskiemu, któremu nadano prefiks
numeru REGON 34.
Podsumowując, po dwu pierwszych cyfrach nie można się zorientować gdzie
działa jakaś firma lub osoba prawna.
Jedynie można się zorientować gdzie została zarejestrowana:
prefiks 00 niewiadomo gdzie ale bardzo dawno temu :)
prefiksy 01, 03 ... 97 numer województwa przed rokiem 1999
prefiksy 02, 04*, 06 ... 34*
numer nowego województwa po 1.1.1999
prefiksy 36 ... 98 nie wiadomo gdzie, ale niedawno.
Uzupełnienie (wrzesien 2020)
pulę 360000018 zaczęto 9.11.2014, a wyczerpano 18.4.2018,
pula 37 to stare województwo krośnieńskie - numerów się nie przydziela,
pulę 380000014 zaczęto 18.4.2018, do 01.09.2020 numery REGON doszły do 386900003.
Z odpowiedzi na moje zapytanie nt. kodów
Numery id. REGON nie identyfikują podmiotów według podziału
terytorialnego kraju. Informacja o pulach numerów jest objęta tajemnicą
służbową, ponieważ taka informacja może zostać wykorzystana przez oszustów.
Każda pula może zostać zmieniona w dowolnej chwili o ile zajdzie taka
konieczność.
Departament Metodologii, Standardów i Rejestrów GUS
Wydział Rejestru REGON
Dokładne dane przedsiębiorstwa są zapisane w
bazie GUS
i na podstawie numeru REGON, NIP lub KRS można je uzyskać przez internet.
Na stronie
GUS (adres już nie działa) można było znaleźć taki opis:
"Numer identyfikacyjny podmiotów (osób prawnych, jednostek organizacyjnych
nie mających osobowości prawnej, osób fizycznych prowadzących działalność
gospodarczą) składa się z 9 cyfr, które nie mogą mieć ukrytego lub jawnego
charakteru znaczącego, określającego pewne cechy podmiotu, przy czym osiem
pierwszych cyfr stanowi liczbę porządkową, a dziewiąta - cyfrę kontrolną.
Numer identyfikacyjny jednostki lokalnej składa się z 14 cyfr, przy czym
dziewięć pierwszych cyfr stanowi numer identyfikacyjny REGON osoby prawnej,
jednostki organizacyjnej nie mającej osobowości prawnej lub osoby fizycznej
prowadzącej działalność gospodarczą, cztery kolejne cyfry są liczbą
porządkową przypisaną jednostce lokalnej, a czternasta jest cyfrą kontrolną.
Raz nadane numery, nawet w przypadku likwidacji podmiotu, nie są
wykorzystywane do identyfikacji innego podmiotu."
Nowszy opis pod adresem:
http://bip.stat.gov.pl/dzialalnosc-statystyki-publicznej/rejestr-regon/podmioty-i-dane-objete-rejestrem/
Aktualne dane nt. statystyki wpisów do rejestru REGON są dostępne pod adresem
Informacja kwartalna
REGON-14
Numer identyfikacyjny jednostki lokalnej czyli tzw. REGON 14-to cyfrowy jest
weryfikowany według identycznego algorytmu jak poprzednio, jednak wagi zostały
zupełnie zmienione. Cyfra kontrolna na końcu obejmuje poprawność 13-tu cyfr.
Co ciekawe, z powodu czyjegoś błędu w pierwszej wersji zmieniono wagi
(być może tylko jedną) i teraz na piątej pozycji waga wynosi 0 (tak zero).
Czyli, jeśli przy wpisywaniu pomylimy się na piątym miejscu to algorytm
tego nie wykryje. Zupełny idiotyzm prawda?
Krzysztof z Nowego Sącza - jeden z czytelników zaproponował metodę
weryfikacji, która omija ten błąd wag REGONu 14.
"Ja to zrobilem tak - w 1 etapie weryfikuję 9 cyfr (9-ta kontrolna)
i w przypadku pozytywnego wyniku weryfikuję 14 cyfr (14 kontrolna)"
Współczynniki wagowe są objęte tajemnicą służbową (tajne?) i żeby je poznać
należy złożyć podanie do GUSu :)
Żeby je uzyskać musiałem wykonać kilka rozmów międzymiastowych i złożyć
zapewnienie, że nie bedę tej wiadomości rozpowszechniał.
Jeden z pracowników GUS wyjaśnił mi, że informacje zawarte na tej stronie
mogą byc wykorzystane do fałszowania dokumentów. Jeżeli więc, czytelniku,
zamierzasz sfałszować jakis dokument to ostrzegam, że fałszerstwa dokumentów
są wykrywalne innymi metodami i fałszerstwo jest karalne.
Oczywiście średnio zdolny matematyk/programista na podstawie kilkudziesięciu
poprawnych numerów - znalezionych w internecie - może sobie wagi odtworzyć,
a średnio zdolny haker może je znaleźć w kodzie binarnym programu PESEL.EXE,
który można załadować z linku na dole tej strony. Chyba nie jest to trudne
bo kilka osób to już zrobiło :).
BobbyK zastosował metodę kombinowaną - dedukcyjno-brutalno-podpieraną :) .
Dedukcyjnie znalazł wagi na kilku miejscach, potem brutalnie sprawdzał
wszystkie możliwości na nieznanych wagach. Po znalezieniu wag wygenerował
tysiące regonów14 i podparł się programem pesel.exe aby je zweryfikować.
Szczegóły na stronie BobbyK - pouczające dla
studentów informatyki i jest morał na końcu.
Jeśli się już ma program PESEL.EXE (pracujący w oknie DOSa w Windows)
i IQ ≥ 110 to już znalezienie wag jest dziecinnie proste.
Fragment
postu fotomodelki, kończącego awanturkę,
która wyniknęła z błędnej weryfikacji numeru REGON (4-4-2004)
W celu weryfikacji numeru REGON skorzystałam z kalkulatorów jakie znajdują
się na kilku stronach internetowych (do twórców, których też mam zamiar
napisać, aby dodały istotne "uwaga", aby nikt więcej nie popełnił takiego
błędu jak ja ):
http://www.pko.pl/f/regon.htm
http://dione.ids.pl/~radek/code/regon.html
http://www.podatki.pl/kalkulator/30/index16.htm
http://panorama.infor.pl/kalkulatory/regonnip.php
http://www.zse.bydgoszcz.pl/~sunio/kody.html
http://members.lycos.co.uk/ququqa2/regon.php
http://animatek.w.interia.pl/kody03.html
Na stronach tych wystarczy wpisać numer REGON i natychmiast uzyskuje się
informację czy jest on prawidłowy, czy nie. Niestety skorzystałam właśnie
z tych stron. Liczyłam też "ręcznie" i ciągle wychodziło, że jest zły.
Na stronach podane jest w jaki sposób należy wyznaczyć czy REGON jest
prawidłowy czy nie. Liczy go się na zasadzie sumy iloczynów kolejnych cyfr
REGONu przez odpowiadające im wagi. Następnie uzyskany wynik dzielimy
modulo 11. Załóżmy, że wynik wynosi 12. Wtedy ostatnia cyfra REGONu tzw.
cyfra kontrolna powinna wynosić 3 (1+2 - suma liczby dziesiątek i liczby
jedności). W przypadku tej Agencji modulo 11 z liczby 186 wynosi 10, czyli
cyfrą kontrolną powinna być 1 (1+0). Jednak to zły wniosek, czego już nie
napisano na powyższych stronach.
Jedynie na stronie:
http://chemeng.p.lodz.pl/zylla/ut/nip-rego.html
jest dodana "uwaga", że jeśli modulo liczby wynosi 10, wówczas liczbą
kontrolną jest 0.
Uwaga: ktoś zwrócił mi uwagę na niezamierzony dowcip matematyczny modelki:
"Następnie uzyskany wynik dzielimy modulo 11. Załóżmy, że wynik wynosi 12."
Oczywiście fragment:
"powinna wynosić 3 (1+2 - suma liczby dziesiątek i liczby jedności)"
świadczy o niezrozumieniu algorytmu. Zaczynam wątpić w swoje zdolności
dydaktyczne :) Już parę osób mi mówiło że używam niezrozumiałego języka.
Ale być może umiejętność „czytania ze zrozumieniem” się
zmniejszyła w naszym społeczeństwie?
Uwaga2: no dobra, podaję wagi dla REGONU-u 14-to cyfrowego:
2 4 8 5 0 9 7 3 6 1 2 4 8
Uwaga3: "powinna wynosić 3 (1+2 - suma liczby dziesiątek i liczby jedności)"
dotyczy algorytmu Luhna, który stosuje się do numerów kart kredytowych
i numeru IMEI (numer nadany fabrycznie indywidualnie dla każdego
telefonu komórkowego)
|