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.
Na raso jog mano asmens kodas neteisingas. Klaida arba pase arba sitam kode
Sveikas,Levai,senai bematytas 🙂
Ivedus savo AK man raso,kad neteisybe… Kokiu prinicpu si programele tikrina ir nustato?
O apie mano a.koda sako TRUE 🙂
Beje, padariau copy/paste i MS Excell ir veikia is kart, be jokiu pakeitimu.
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.
Suradau teisingesnį algoritmą ir patikrinau jį su dešimčia TIKRŲ probleminių asmens kodų.
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.
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.
aiskuma 😉