Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Wanted: Eesti isikukoodi standard, kontrollnumber

380 views
Skip to first unread message

Toomas Mölder

unread,
Oct 8, 2002, 5:52:22 AM10/8/02
to
head kaasvõitlejad,

otsin taga EV standardit "EV ST 585-90. Isikukood. Struktuur." ja täpsemalt
selle viimase numbri, kontrollnumbri arvutamise meetodit.

Lehel http://w3.andmevara.ee/index.php?path=0x134#Isikukood on kõik esimene
ots kenasti lahti seletatud (ja varemgi teada).

http://www.eki.ee/itstandard/FDCC.shtml on alajaotises 26: Isikute ja
asutuste identifitseerimisnumbrid seletatud muuhulgas ka, et "Pangakontode
numbrid Eestis ...Viimane märk kontonumbris on kontrolljärk. Kontrolljärgu
arvutamine toimub 7-3-1 meetodi alusel." aga kas sama 7-3-1 kehtib ka
isikukoodi kohta? http://www.pangaliit.ee/731naide.htm põhjal kontrollides
mitte.

Otse Standardiametisse pöördumisel on võimalus kas tulla kohale Tallinn Aru
tn.10 raamatukokku või siis osta see standard raha eest.

Olen tänulik kui keegi selle Eesti isikukoodi kontrollnumbri arvutamise
meetodi kas siia gruppi või mulle otse kas lahti seletab või pädevale
dokumendile veebis viitab.

---
Toomas Mölder, toomas...@mail.ee
GSM: +372 55 22 000


Alo Raidaru

unread,
Oct 7, 2002, 7:24:39 AM10/7/02
to

"Toomas Mölder" wrote:
>
> head kaasvõitlejad,
>
> otsin taga EV standardit "EV ST 585-90. Isikukood. Struktuur." ja täpsemalt
> selle viimase numbri, kontrollnumbri arvutamise meetodit.

> Toomas Mölder, toomas...@mail.ee

Peale visa otsimist riiulilt üles leitud! Paberkandjal.
6 A4 lehte.
See meetod on seal olemas.

(Isikukoodi töötlusprogrammi viimane
versioon veel arvutist leidmata.)

Alo Raidaru
07 331025

Virgo Inno

unread,
Oct 8, 2002, 7:30:39 AM10/8/02
to
"Toomas Mölder" <toomas...@mail.ee> wrote in message
news:anu9sl$2s1$1...@kadri.ut.ee...

> otsin taga EV standardit "EV ST 585-90. Isikukood. Struktuur." ja
täpsemalt
> selle viimase numbri, kontrollnumbri arvutamise meetodit.

Käepärast mul seda pole, aga see standard oli (on?) vigane - seal oli vist
mingi selline bugi, et oli öeldud, et 5 ja 6-ga algavaid koode hakatakse
väljastama XXI sajandil, aga praktikas hakati juba 2000 aastal. :-)

Muuseas - ei tohi unustada, et Eestis on praktikas väljastatud ka korduvaid
ning kontrollsumma arvutamise reeglile mittevastavaid isikukoode.

> Olen tänulik kui keegi selle Eesti isikukoodi kontrollnumbri arvutamise
> meetodi kas siia gruppi või mulle otse kas lahti seletab või pädevale
> dokumendile veebis viitab.

Alltoodud stuff igastahes töötab. Kontrollitud. (Halva stiili pärast võib ju
viriseda - loomulikult saaks ka tsükliga, aga nii on kiirem.)

FUNCTION SecurityID_OK(p_vcSecID IN VARCHAR2) RETURN BOOLEAN IS
lc_nMaxLen CONSTANT NUMBER(2) := 11;
l_nMod NUMBER(2);
BEGIN
l_nMod := Mod(
(To_Number(SubStr(p_vcSecID,1 ,1)) ) +
(To_Number(SubStr(p_vcSecID,2 ,1)) * 2)
+ (To_Number(SubStr(p_vcSecID,3 ,1)) * 3) +
(To_Number(SubStr(p_vcSecID,4 ,1)) * 4)
+ (To_Number(SubStr(p_vcSecID,5 ,1)) * 5) +
(To_Number(SubStr(p_vcSecID,6 ,1)) * 6)
+ (To_Number(SubStr(p_vcSecID,7 ,1)) * 7) +
(To_Number(SubStr(p_vcSecID,8 ,1)) * 8)
+ (To_Number(SubStr(p_vcSecID,9 ,1)) * 9) +
(To_Number(SubStr(p_vcSecID,10,1)) )
,lc_nMaxLen);

IF (l_nMod = (lc_nMaxLen - 1)) THEN
l_nMod := Mod(
(To_Number(SubStr(p_vcSecID,1 ,1)) * 3) +
(To_Number(SubStr(p_vcSecID,2 ,1)) * 4)
+ (To_Number(SubStr(p_vcSecID,3 ,1)) * 5) +
(To_Number(SubStr(p_vcSecID,4 ,1)) * 6)
+ (To_Number(SubStr(p_vcSecID,5 ,1)) * 7) +
(To_Number(SubStr(p_vcSecID,6 ,1)) * 8)
+ (To_Number(SubStr(p_vcSecID,7 ,1)) * 9) +
(To_Number(SubStr(p_vcSecID,8 ,1)) )
+ (To_Number(SubStr(p_vcSecID,9 ,1)) * 2) + (To_Number(SubStr(p_vcSecI
D,10,1)) * 3)
,lc_nMaxLen);

IF (l_nMod = (lc_nMaxLen - 1)) THEN
l_nMod := 0;
END IF;
END IF;
RETURN l_nMod = To_Number(SubStr(p_vcSecID,lc_nMaxLen,1));
END SecurityID_OK;


Toomas Mölder

unread,
Oct 8, 2002, 7:38:54 AM10/8/02
to

ise küsin, ise vastan :)
kontrollnumber, mis formeeritakse isikukoodi standardis toodud korra
kohaselt.
Arvutatakse valemiga
k = (nr1 + nr2 * 2 + nr3 * 3 + nr4 * 4 + nr5 * 5 + nr6 * 6+ nr7 *7 + nr8 * 8
+ nr9 * 9 + nr10) mod 11
If k = 10 Then k = (nr1 * 3 + nr2 * 4 + nr3 * 5 + nr4 * 6 + nr5 * 7 + nr6 *
8 + nr7 * 9 + nr8 + nr9 * 2 + nr10 * 3) mod 11

---
Toomas Mölder, toomas...@mail.ee

"Toomas Mölder" <toomas...@mail.ee> wrote in message
news:anu9sl$2s1$1...@kadri.ut.ee...

Virgo Inno

unread,
Oct 8, 2002, 7:44:30 AM10/8/02
to
"Toomas Mölder" <toomas...@mail.ee> wrote in message
news:anug4d$kit$1...@kadri.ut.ee...

>
> ise küsin, ise vastan :)
> k = (nr1 + nr2 * 2 + nr3 * 3 + nr4 * 4 + nr5 * 5 + nr6 * 6+ nr7 *7 + nr8 *
8
> + nr9 * 9 + nr10) mod 11
> If k = 10 Then k = (nr1 * 3 + nr2 * 4 + nr3 * 5 + nr4 * 6 + nr5 * 7 + nr6
*
> 8 + nr7 * 9 + nr8 + nr9 * 2 + nr10 * 3) mod 11

Pole ka veel päris õige - sinna lõppu käib veel:
If k = 10 Then k =0

v


Andres Soolo

unread,
Oct 8, 2002, 7:51:26 AM10/8/02
to
'Twas Tue, 2002-Oct-08. Quoth Virgo Inno,

> FUNCTION SecurityID_OK(p_vcSecID IN VARCHAR2) RETURN BOOLEAN IS

Ära hüüa isikukoodi SecurityID'ks. See võib algajaid programmeerijaid
viia kallitele eksiteedele.

--
Andres Soolo <so...@ut.ee>

One of the most striking differences between a
cat and a lie is that a cat has only nine lives.
-- Mark Twain

Alo Raidaru

unread,
Oct 7, 2002, 8:32:14 AM10/7/02
to

"Toomas Mölder" wrote:
>
> ise küsin, ise vastan :)
> kontrollnumber, mis formeeritakse isikukoodi standardis toodud korra
> kohaselt.
> Arvutatakse valemiga
> k = (nr1 + nr2 * 2 + nr3 * 3 + nr4 * 4 + nr5 * 5 + nr6 * 6+ nr7 *7 + nr8 * 8
> + nr9 * 9 + nr10) mod 11
> If k = 10 Then k = (nr1 * 3 + nr2 * 4 + nr3 * 5 + nr4 * 6 + nr5 * 7 + nr6 *
> 8 + nr7 * 9 + nr8 + nr9 * 2 + nr10 * 3) mod 11

nr8*1

Sõnastus on

2. Kontrollnumbri formeerimine

Kontrollnumber formeeritakse "Moodul 11" meetodil, kasuta-
des I või II astme kaalu:
X XXXXXX XXX
I astme kaal 1 234567 891
II astme kaal 3 456789 123

Koodi kümme seimest numbrit korrutatakse igaüks omaette
I astme kaaluga, korrutised liidetakse. Saadud summa jagatakse
11ga, Kui jääk ei võrdu 10ga, on jääk kontrollnumbriks.

Kui jääk võrdub 10ga, siis korrutatakse koodi kümme esimest
numbrit igaüks omaette II astme kaaluga. Korrutised liidetakse.
Saadud summa jagatakse 11ga. Kui jääk ei võrdu 10ga, on saadud
jääk kontrollnumbriks. Kui jääk võrdub 10ga, siis on kontroll-
number 0.

Edasi tuleb kaks näidet.

Säilitasin ka lehe kujunduse:)

A.R.

0 new messages