Asmens kodo tikrinimas

Prireikė čia vienam žmogiukui asmens kodo tikrinimo programėlės. Teko skubiai nusirašyti iš interneto tikrinimo algorintmą ir sukišti į Microsoft Visual Basic apvalkalą. Va ir gavoasi va tokis produktas: Asmens kodo tikrinimas.

Programa gali reikalauti MS Visual Basic runtime. Ją laisvai galima rasti internete ar MS interneto puslapiuose.

Pats tikrinimo algoritmas visiškai paprastas. Manau jį lengvai galima įkišti į MS Excel Basicą:

Ženkliukas “” reiškia, kad perkėlimas į kitą eilute nereikalingas.

Private Function chksum(ak)
Dim c, c1
c = Val(Mid$(ak, 1, 1)) + Val(Mid$(ak, 2, 1)) * 2 +
\ Val(Mid$(ak, 3, 1)) * 3 + Val(Mid$(ak, 4, 1)) * 4 +
\ Val(Mid$(ak, 5, 1)) * 5 + Val(Mid$(ak, 6, 1)) * 6 +
\ Val(Mid$(ak, 7, 1)) * 7 + Val(Mid$(ak, 8, 1)) * 8 +
\ Val(Mid$(ak, 9, 1)) * 9 + Val(Mid$(ak, 10, 1))
c = c Mod 11
c1 = Val(Mid$(ak, 1, 1)) * 3 + Val(Mid$(ak, 2, 1)) * 4 +
\ Val(Mid$(ak, 3, 1)) * 5 + Val(Mid$(ak, 4, 1)) * 6 +
\ Val(Mid$(ak, 5, 1)) * 7 + Val(Mid$(ak, 6, 1)) * 8 +
\ Val(Mid$(ak, 7, 1)) * 9 + Val(Mid$(ak, 8, 1)) * 1 +
Val(Mid$(ak, 9, 1)) * 2 + Val(Mid$(ak, 10, 1)) * 3
c1 = c1 Mod 11
If c <> 10 Then
    chksum = c
ElseIf c1 <> 10 Then
    chksum = c1
Else
    chksum = 0
End If
End Function

Private Function ak(s)
Dim i
i = chksum(s)
If Mid$(s, 11, 1) = i Then
    ak = True
Else
    ak = False
End If
End Function

Algoritmas tekstinėje formoje.
O štai čia Asmens kodo tikrinimas MS EXCEL. Tik pasireguliuokite savo “security” nustatymus excelyje.

8 replies on “Asmens kodo tikrinimas”

  1. Sveikas,Levai,senai bematytas 🙂
    Ivedus savo AK man raso,kad neteisybe… Kokiu prinicpu si programele tikrina ir nustato?

  2. O apie mano a.koda sako TRUE 🙂
    Beje, padariau copy/paste i MS Excell ir veikia is kart, be jokiu pakeitimu.

  3. Kiek tikrinau su man prieinamais AK viskas veikė. Nzn. algorintmas ne mano darytas. Gal vėliau, kai gausiu daugiau AK, pabandysiu patikrinti- neturiu nei vieno kuris netiktu.

  4. kokiu cia algoritmu reikia ieskot?
    pirmas skaicius nusako lyti: 3 – vyras, 4 -boba, 5 dar yra, atrodo 🙂 nzn kam.
    tada eina gimimo data: du sk metam (45), du skaiciai men ir du sk dienai, o tada dar 4 skaitmenys, kurie glai buti belekokie.

  5. To JURGENAS: deja ne. Paskutinis skaitmuo yra kontrolinė suma. Taigi paskutiniai skaičiai ne bet kokie.

    O pirmas skaitmuo yra šimtmetis ir lytis. 1- 19a vyras, 2- 19a moteris, 3- 20a vyras, 4-20a moteris, 5- 21a vyras, 6- 21a moteris.

Leave a Reply

Your email address will not be published. Required fields are marked *