Za potrebe identifikacije oseb ali predmetov, zelo pogosto uporabljamo identifikacijske številke, ki so zapisane v RFID čipu. Te kode so shranjene v dvojiški oz. binarni obliki (BIN), torej v obliki enic in ničel. Ko čip preberemo, običajno vidimo na zaslonu desetiško (DEC) ali šestnajstiško (HEX) vrednost. Čitalniki lahko isti zapis interpretirajo na različne načine oziroma, ga pred prikazom na zaslonu še dodatno obdelajo, tako, da obrnejo zaporedje bitov ali bajtov ali obrnejo hkrati zaporedje bitov ter bajtov. V tem članku razlagamo o tem kako si lahko pomagate, če se prikazana vrednost, ki jo poda čitalnik ne ujema s kodami, v sistemu ali tabeli, in podajamo razlago kako berejo ID kodo Mifare, NFC in 125kHz čitalniki.
Zelo pogosto uporabljeni čipi tipa
Mifare Classic imajo vpisano 4-bajtno ID kodo, kar pomeni, da je vprogramiranih 32 bitov, torej 32 mestna binarna koda sestavljena in 1 in 0.
Pogosti format branja ID kode v primeru Mifare čitalnikov je 8 HEX ali desetiški format 10 DEC.
Za potrebe analize je potrebno prebrano kodo pretvoriti v izvorno obliko v dvojiškem sistemu. Pri tem si lahko pomagamo z brezplačnim orodjem:
https://www.rapidtables.com/convert/number/hex-to-binary.html
Če je v čipu vpisana 8 mestna koda FFFF FFFF,
je to v binarnem zapisu: 1111111111111111 1111111111111111
To isto kodo lahko preberemo tudi v desetiškem formatu
in iz FFFFFFFF dobimo 4294967295
Preprost čitalnik, ki bere v formatu 10 DEC je R80C:
https://www.mave.si/citalniki/r80c-citalnik-rfid-cipov-frekvence-13-56-mhz.html
Če potrebujemo drugačni izpis, sta uporabna spodnja dva čitalnika, ki imata priložen CD s konfiguratorjem:
Soliden čitalnik z možnostjo spreminjanja formatov in načina delovanja :
https://www.mave.si/citalniki/syris-rd200-m1-citalnik-mifare-in-nfc-kartic.html
Še boljši čitalnik - dolga razdalja branja, možnost spreminjanja formatov in načina delovanja, več podprtih protokolov:
https://www.mave.si/citalniki/syris-rd300-h1-g-univerzalni-citalnik-za-nfc-mifare-in-icode-standarde.html
Spodnji primeri kažejo kakšna je povezava med kodo, ki jo poda nek čitalnik in kodo, ki jo je za isto kartico podal nek drugi čitalnik.
1. Primer analize korelacije med odčitkom dveh različnih čitalnikov, kjer je kartica ista
1 čitalnik 1E4BF5AE
2 čitalnik 508294574
Vidimo, da nam drugi čitalnik poda desetiško vrednost, torej dovolj je, da šestnajstiško kodo pretvorimo v DEC kodo in dobimo: 508294574
To zna narediti tudi Excel s funkcijo HEX2DEC.
Tu je zanimivo, da je koda 9 mestna, čeprav bi morala biti 10 mestna in očitno nam je drugi čitalnik porezal začetno nulo. Celotna DEC koda je torej 0508294574.
2. Primer analize korelacije med odčitkom dveh različnih čitalnikov, kjer je kartica ista:
1 čitalnik 1E4BF5AE
2 čitalnik AEF54B1E
Vidimo, da nam oba čitalnika podata 8 mestno šestnajstiško vrednost in že na prvi pogled je
jasno, da se po dva znaka ponavljata ampak na različnih mestih
1 čitalnik
1E 4B
F5 AE
2 čitalnik
AE F5 4B
1E
Iz tega vidimo, da je drugi čitalnik uporabil funkcijo Reverse Byte in je obrnil vrstni red bajtov iz prve vrstice.
Iz 1E 4B F5 AE smo dobili AE F5 4B 1E
To pretvorbo si lahko naredimo v Excelu s par preprostimi funkcijami =MID(A1;1;2)...
3. Primer analize korelacije med odčitkom dveh različnih čitalnikov, kjer je kartica ista je malo bolj kompleksen in zahteva nekaj več korakov.
1 čitalnik 1E4BF5AE
2 čitalnik 78D2AF75
Za analozo tega kompleksnejšega primera moramo oba odčitka najprej pretvoriti v izvorni dvojiški način, torej BIN format in primerjati posamezne dele kode.
1 čitalnik 1E 4B F5 AE
1E 4B F5 AE
00011110 01001011 11110101 10101110
2 čitalnik 78 D2 AF 75
78 D2 AF 75
01111000 11010010 10101111 01110101
Sedaj vidimo, da še ni neke vidne korelacije med obema odčitkoma in poskusimo postopoma pretvoriti prvi odčitek, da dobimo drugega.
Prvemu odčitku naredimo funkcijo reverse bit, torej prepišemo posamezna znake od desne proti levi.
Torej iz
1E4BF5AE 1E 4B F5 AE
BIN: 00011110 01001011 11110101 10101110
z Reverse bit dobimo: 01110101 10101111 11010010 01111000
To je v HEX: 75 AF D2 78
Sedaj smo že bližji odčitku, ki ga iščemo in potrebno je narediti še funkcijo Reverse Byte, torej prepisati po dva znaka iz desne proti levi in dobimo: 78 D2 AF 75
Ko pretvarjamo različne formate odčitkov ali ko raziskujemo razne težave z branjem čipov, moramo poznati še nekaj dejstev.
Lastnosti ID kod v primeru NFC čipov
NFC čipi tipa NTAG ali Mifare DESFire imajo ID kodo dolžine 7 bajtov, torej je vprogramiranih 56 enk in ničel. To kodo lahko vidimo na zaslonu kot 14 mestno šestnajstiško kodo ali 17 mestno desetiško kodo.
Primer 14 mestna koda FFFFFFFFFFFFFF je 17 mestna decimalna koda 72057594037927935.
Mobilni telefoni in druge NFC naprave prikazujejo kodo v formatu 14 HEX Reverse Byte.
Torej koda 04 01 EA F2 90 5B 81 je v čipu zapisana kot 81 5B 90 F2 EA 01 04.
Podvojena ID koda NFC čipa? Primer, ki dela preglavice tudi najboljšim razvojnikom
Če bi isto NFC nalepko prebrali z navadnim RFID čitalnikom, ki je narejen za branje le 4-bajtne kode, bi dobili zgolj 81 5B 90 F2.
Če nas kdo vpraša ali je mogoče, da imata dve NFC nalepki enako ID kodo, je odgovor ne, saj proizvajalec čipov pravi, da so kode edinstvene (UID - Unique ID), se pa tudi našim strankam pogosto zgodi, da zaradi napačnega branja naredijo v bazo vpis delnih kod, torej le 8 mest in ti delni vpisi se lahko ponovijo.
Rešitev te težave torej predstavlja uporaba čitalnika, ki prebere celotno 7-bajtno kodo.
NFC čitalniki za branje ID kode čipa
Najboljši čitalnik - dolga razdalja branja, možnost spreminjanja formatov in načina delovanja:
https://www.mave.si/citalniki/syris-rd300-h1-g-univerzalni-citalnik-za-nfc-mifare-in-icode-standarde.html
Soliden čitalnik z možnostjo spreminjanja formatov in načina delovanja :
https://www.mave.si/citalniki/syris-rd200-m1-citalnik-mifare-in-nfc-kartic.html
Preprosti simulator tipkovnice, brez konfiguratorja:
https://www.mave.si/citalniki/r80uf-nfc-citalec-keyboad-emulator-za-uid.html
NFC čitalnik za razvijalce, ki uporablja API ukaze:
https://www.mave.si/citalniki/acr1252u-naprava-za-branje-in-kodiranje-nfc-cipov.html
Kakšno kodo pa imajo vprogramirano 125 kHz čipi?
125 kHz čipi tipa EM4200 in TK4100 imajo vprogramirano 40 bitno ID kodo čipa, ki jo lahko preberemo kot 10 mestno HEX kodo ali
125 kHz kartica s celotno 10 mestno HEX kodo 84C2A6E195 ima vpisano BIN kodo:
1000010011000010101001101110000110010101
in to lahko preberemo kot desetiško kodo: 570201399701 - torej 12 mest DEC
Običajni 125 kHz čitalniki berejo v formatu 8H-10D torej preberejo le prvih 8 znakov in jih pretvorijo v desetiški format.
Na ta način iz C2A6E195 dobimo 3265716629.
Najboljši čitalnik za branje ID kode 125 kHz čipa - dolga razdalja branja, možnost spreminjanja formatov in načina delovanja:
https://www.mave.si/citalniki/syris-rd200-lf-za-rfid-cipe-na-125-khz-in-134-khz.html
Preprosti simulator tipkovnice, brez konfiguratorja:
https://www.mave.si/citalniki/r80d-rfid-citalnik-125-khz-cipov.html
Čitalci ki dajo ID kodo na COM vrata običajno nimajo možnosti nastavljanja formata ID kode ampak se le to lahko kasneje programsko pretvori.
Ti čitalci so:
https://www.mave.si/citalniki.html#p=415,284
V primeru vprašanj smo na razpolago na info@mave.si ali telefonski številki 041 884 124.