Ján Fečík


osobná stránka · blog

Dátum: sobota, 23. októbra 2021
Čas: 09:21:50, 1634973710, @348
Meniny má: Alojzia, Žitomír
IP adresa: 3.236.51.151
Polojasno - Bratislava
7 °C
Polooblačno
dnes
15 °C / 7 °C
Slnečno
nedeľa
12 °C / 2 °C
Slnečno
pondelok
12 °C / 2 °C
Prevažne oblačno
utorok
11 °C / 4 °C

Zadná strana občianskeho preukazu

Dostala sa mi do rúk čítačka občianskych preukazov PrehKeyTec ML2. Mojou úlohou ju bolo sprevádzkovať tak, aby sa s ňou dokázali prečítať údaje priamo cez prehliadač a zároveň sa tieto dáta z občianskeho preukazu vložili do formulára na webe. Nikdy som niečo také neriešil, takže to bola pre mňa premiéra hlavne čo sa týka komunikácie čítačky s prehliadačom. Podľa mojich informácií sa tento typ čítačky používa hlavne na letiskách a iných miestach, kde je potrebné rýchle a bezpečné prečítanie údajov z pasov, občianskych preukazov a iných dokladov či kariet, ktoré dokáže prečítať.

Ďalšia evolúcia môjho webu a blogu  ·  HashTab - overenie kontrolného súčtu

Jedná sa o OCR skener a čítačku magnetických pruhov v jednom, má zároveň aj vlastný indikátor stavu, ktorý kontroluje či sa karta správne prečítala a upozorní na to zvukovým signálom, resp. signalizačnou diódou. Vraj by mala čítačka vydržať viac ako 1 000 000 cyklov, ale či tomu tak v skutočnosti je netuším. Pripojenie k počítaču je zabezpečené cez USB kábel s virtuálnym COM portom, ktorý sa nastavuje pri inštalácií ovládačov.Zadná strana občianskeho preukazuPotreboval som teda správne prečítať meno a priezvisko, číslo občianskeho preukazu, rodné číslo, dátum narodenia, pohlavie, národnosť a zároveň aj platnosť preukazu s upozornením, že je už neplatný keď tak. Ďalej bolo celkom vhodné overovať aj kontrolné číslice ktoré sa na zadnej strane občianskeho preukazu nachádzajú. Takže ako prvé som premýšľal ako vôbec čítačku sprístupním prehliadaču. Jediné čo ma napadlo ako to asi pôjde celé spojazdniť bolo za použitia JavaScriptu, ale ako? Narazil som v Chrome na Web Serial API a tým teda možnosť sa pripojiť na COM port a čítať z neho dáta.

Pomocou článku Web Serial API to bola celkom malina a dokázal by to snáď asi každý. Jediný problém čo som mal bolo správne nastavenie, lebo s predvolenými hodnotami mi nečítalo všetky dáta v poriadku. Bolo nutné si nastaviť baudRate na 9600, dataBits na 7, stopBits na 1 a parity na hodnotu even. Takto som už dáta dokázal prečítať bez kadejakých nezmyselných znakov. Následne som všetky dáta dal do jedného reťazca aby neboli rozhádzané a dalo sa s tým lepšie pracovať. Takže takto som začal čítať jednotlivé políčka z textu na zadnej strane občianskeho preukazu.Zadná strana občianskeho preukazuAko je vidieť na obrázku vyššie, tak sa tam nachádzajú aj kontrolné číslice, no dostalo sa ku mne aj jedno PDFko, ktoré obsahuje postup ako sa dajú tieto kontrolné číslice overiť celkom jednoduchým výpočtom. Môžeme si to ukázať na prvom riadku kde je červeným podtrhnuté číslo občianskeho preukazu EA000000. Je nutné počítať zľava doprava tak, že každé číslo a znak sa vynásobí postupne 731 731 731 731 atď. Za písmena je nutné tiež dosadiť čísla a to tak že A sa nahradí číslo 10, B číslom 11 atď., ale toto je všetko v tom PDF dokumente uvedené. Čiže v tomto konkrétnom prípade dosadíme za E číslo 14, za A číslo 10, takže dostaneme čísla 14 10 0 0 0 0 0 0.

Teraz každú hodnotu vynásobíme vzorom 731, takže (14 x 7) + (10 x 3) + (0 x 1) + (0 x 7) + (0 x 3) + (0 x 1) + (0 x 7) + (0 x 3) = 128. Tento výsledok 128 sa vydelí 10 a zvyšok čo je v tomto prípade 8 je teda naša kontrolná číslica ako je vidieť na obrázku. Môžem vypočítať ešte druhý príklad s platnosťou občianskeho preukazu. Čiže tam máme na obrázku platnosť občianskeho preukazu v tvare YYMMDD, čiže naša hodnota je 180701. Výpočet kontrolnej číslice platnosti občianskeho preukazu bude nasledovný: (1 x 7) + (8 x 3) + (0 x 1) + (7 x 7) + (0 x 3) + (1 x 1) = 81. Výsledok sa vydelí 10 a daný zvyšok čo vyšiel 1 je naša kontrolná číslica. Takýmto spôsobom sa počíta aj dátum narodenia ktorý je hneď na začiatku druhého riadku tiež v tvare YYMMDD.Zadná strana občianskeho preukazuNachádza sa tam ešte aj štvrtá kontrolná číslica v druhom riadku na konci. Tá sa počíta zo všetkých hodnôt čo sú podtrhnuté zelenou farbou. Nebudem tvrdiť, že to mám jednoznačne správne a určite tam budem mať nejakú chybu možno v nejakých posunoch, ale to si už vyriešim za pochodu keď nastane taká situácia, že mi to v nejakom prípade nebude fungovať, trebárs kvôli inému typu občianskeho preukazu. Každopádne som sa naučil niečo nové a hlavne som zistil, že na zadnej strane občianskeho preukazu je niečo takého. Nikdy som občiansky preukaz popravde neprezeral dopodrobna, resp. ma ani nezaujímalo niečo také. Dokonca som zistil, že je to iste aj na pasoch, aj keď len v dvoch riadkoch. Čiže si zakomponujem aj pasy do kódu, aby sa dalo pracovať aj s nimi, keďže pas je taktiež doklad totožnosti.

Ja osobne to používať síce nebudem, ale taktiež to nebude ani masovka, takže neriešim či tam je nejaká chybička krásy, zas ten čas sedenia za tým a študovania nestojí za to. Takže to keď tak za behu dotyčnej osobe čo to bude používať opravím, či doplním ak sa niečo vyskytne. Možno to niekomu ako ja neznalému tejto problematiky pomôže pri spojazdnení takéhoto zariadenia, keďže na internete toho dohromady nič nie je, hlavne ak dotyčný nevie ani čo vôbec hľadať, aj čo sa týka výpočtu kontrolných číslic či sú správne a nie je tam náhodou nejaký problém.

Článok bol zobrazený 600 krát a obsahuje 843 slov
Pridané 8. augusta 2021