Enotna matična številka občana (kratica EMŠO) je osebna identifikacijska številka v Republiki Sloveniji. EMŠO določi upravljavec centralnega registra prebivalstva (CRP) enotno za vse prebivalce Republike Slovenije, vključno s tujimi državljani. EMŠO je bil uveden leta 1976 v SFRJ in je še danes v uporabi v državah na območju bivše Jugoslavije vključno s Slovenijo. Hrvaška je ne uporablja od 1. 1. 2009 temveč zaradi pravice do zasebnosti uporablja negovoreči Osobni identifikacijski broj, ki ne vsebuje rojstnih podatkov.
EMŠO se vpisuje v osebne izkaznice, potne liste in druge javne listine.
Enoličnost EMŠO Navkljub splošnemu prepričanju EMŠO ni najboljši identifikator osebe, saj se lahko tekom življenja osebe spremeni. Če je EMŠO določen na napačen datum rojstva ali spol, jo upravljavec centralnega registra razveljavi in ponovno določi, razveljavljeni EMŠO pa ostane v evidenci. Ob spremembah drugih osebnih podatkov oseba obdrži dodeljeni EMŠO. Razveljavljenega EMŠA se ne sme dodeliti drugemu posamezniku.
Sestav EMŠO EMŠO sestavlja trinajst števk (DDMMLLLRRZZZK), ki imajo naslednji pomen:
od 1. do 7. števke: DDMMLLL – datum rojstva (dve mesti za dan, dve mesti za mesec in tri mesta za zadnje tri števke letnice rojstva) 8. in 9. števka: RR – številka registra: 00-09 – tujci 10-19 – Bosna in Hercegovina 20-29 – Črna gora 30-39 – Hrvaška (33 - Zagreb) 40-49 – Makedonija 50-59 – Slovenija (do leta 2024 se je lahko uporabljalo samo 50) 60-69 – (državljani z začasnim prebivališčem) 70-79 – ožja Srbija (71 - Beograd) 80-89 – pokrajina Vojvodina (80 - Novi Sad) 90-99 – pokrajina Kosovo 10., 11. in 12. števka: ZZZ – zaporedna številka oziroma kombinacija spola in zaporedne številke za osebe, rojene istega dne (000-499 za moške in 500-999 za ženske) 13. števka: K – kontrolna števka, izračunana po modulu 11 (glej spodaj).
Izračun kontrolne vsote Postopek: prva številka EMŠO se pomnoži s 7 druga številka EMŠO se pomnoži s 6 tretja številka EMŠO se pomnoži s 5 četrta številka EMŠO se pomnoži s 4 peta številka EMŠO se pomnoži s 3 šesta številka EMŠO se pomnoži z 2 sedma številka EMŠO se pomnoži s 7 osma številka EMŠO se pomnoži s 6 deveta številka EMŠO se pomnoži s 5 deseta številka EMŠO se pomnoži s 4 enajsta številka EMŠO se pomnoži s 3 dvanajsta številka EMŠO se pomnoži z 2.
Dobljeni zmnožki iz prvega odstavka se seštejejo. Seštevek se deli z enajst (delitev se omeji na celo število). Ostanek pri deljenju se odšteje od števila 11, razlika je kontrolna številka. Kontrolna številka je enomestna, ima lahko vrednost od 0 do 9. Če je ostanek pri deljenju 0, je kontrolna številka 0.
Kadar upravljavec CRP emšo določa in je ostanek pri deljenju enak 1, je razlika dvomestna in kontrolne številke ni mogoče izračunati. V takem primeru zaporedno število preskoči, vrednost zaporedne številke poveča za 1, izračun kontrolne številke pa ponovi po istem postopku.
Excelova formula za preverjanje EMŠO Če so v celici A1 podatki (prvih 12 števk EMŠO), lahko izračunamo kontrolno vsoto (zadnja števka) po formuli:
= IF(11-MOD((7*(MID(A1;1;1)+MID(A1;7;1)) + 6*(MID(A1;2;1)+MID(A1;8;1)) + 5*(MID(A1;3;1)+MID(A1;9;1)) + 4*(MID(A1;4;1)+MID(A1;10;1)) + 3*(MID(A1;5;1)+MID(A1;11;1)) + 2*(MID(A1;6;1)+MID(A1;12;1)));11) = 11; 0; 11-MOD((7*(MID(A1;1;1)+MID(A1;7;1)) + 6*(MID(A1;2;1)+MID(A1;8;1)) + 5*(MID(A1;3;1)+MID(A1;9;1)) + 4*(MID(A1;4;1)+MID(A1;10;1)) + 3*(MID(A1;5;1)+MID(A1;11;1)) + 2*(MID(A1;6;1)+MID(A1;12;1)));11))
Preverjanje EMŠO v programskem jeziku C# private bool emso_verify(string emso) { if ((emso == null) | (emso.Length != 13) | (!emso.All(c => char.IsDigit(c)))) return false;
int emso_sum = 0; for (int i = 7; i > 1; i--) emso_sum += i * (int.Parse(emso.Substring(7 - i, 1)) + int.Parse(emso.Substring(13 - i, 1)));
int control_digit = emso_sum % 11 == 0 ? 0 : 11 - (emso_sum % 11);
if (emso.Substring(12, 1) == control_digit.ToString()) return true;
return false; }
Preverjanje EMŠO v programskem jeziku Python def emso_verify(emso): """ Accepts an iterable of at least 12 digits and returns the number as a 13 digit string with a valid 13th control digit. Details about computation in http://www.uradni-list.si/1/objava.jsp?urlid=19998&stevilka=345 """ emso_factor_map = [7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2] control_digit = sum([int(emso[i]) * emso_factor_map[i] for i in range(12)]) % 11 control_digit = 0 if control_digit == 0 else 11 - control_digit return control_digit == int(emso)
Preverjanje EMŠO v programskem jeziku C++ bool emso_verify(string emso) { if (emso.empty() || emso.size() != 13) // 13 mestno return false;
for (auto& c : emso) if (!(c >= '0' && c <= '9')) // samo številke return false;
static int factor_map[] = { 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2 }; // https://www.uradni-list.si/glasilo-uradni-list-rs/vsebina?urlid=19998&stevilka=345 short control_digit = 0, sum = 0; for (int i = 0; i < 12; ++i) sum += (int)(emso[i] - '0') * factor_map[i];
control_digit = sum % 11 == 0 ? 0 : 11 - (sum % 11);// Seštevek se deli z enajst (delitev se omeji na celo število). // Ostanek pri delitvi se odšteje od števila 11, razlika je kontrolna številka.Kontrolna številka je enomestna, ima lahko vrednost od 0 do 9. // Če je ostanek pri delitvi O je kontrolna številka 0. return control_digit == (int)(emso - '0'); }
Primer Prvi deček, rojen v Sloveniji 1. januarja 2006, ima EMŠO 0101006500006.
Sklici
Zunanje povezave Zakon o centralnem registru prebivalstva (ZCRP) Preverjanje veljavnosti EMŠO
Kategorija:Socialistična federativna republika Jugoslavija Kategorija:Pravo Slovenije Kategorija:Identifikacijske številke Kategorija:Enolični identifikatorji