У меня есть два считывателя смарт-карт, подключенных к моему компьютеру:
- ACS ACR122U бесконтактный считыватель
- CRT-603-CZ1 бесконтактный считыватель
Прочитал инструкцию обоих ридеров. Как упоминалось в руководствах, оба используют следующие команды APDU для команд GET DATA APDU:
CLA | INS | P1 | P2 | Le
0xFF | 0xCA | 0x00/0x01 | 0x00 | 0x00
P1 = 0x00 --> UID will return.
P1 = 0x01 --> ATS or Historical Byte of ATS will return.
Что ж, я сначала поместил карту ISO14443 (возможно, Mifare) в поле считывателя ACR122U, а затем в поле CRT-603-CZ1 и попробовал приведенные выше команды:
OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA000000
Failed to connect to card: Card is invalid or cannot be handled
OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA010000
Failed to connect to card: Card is invalid or cannot be handled
OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA000000
Sending: FF CA 00 00 00
Received (SW1=0x00, SW2=0x00):
FF 16 7F 29 ...)
OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA010000
Sending: FF CA 01 00 00
Received (SW1=0x90, SW2=0x00)
Как вы видите выше, результаты разные. На самом деле ACR122U не может вернуть ATS и UID этой карты.
Итак, я повторяю описанный выше шаг с картой JCOPv2.4.2r3:
OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA000000
Sending: FF CA 00 00 00
Received (SW1=0x90, SW2=0x00):
EF B6 09 2E ....
OSC:> OSC.exe -r "ACS ACR122 0" -s FFCA010000
Sending: FF CA 01 00 00
Received (SW1=0x90, SW2=0x00):
0E 78 F7 B1 02 4A 43 4F 50 32 34 32 52 33 .x...JCOP242R3
OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA000000
Sending: FF CA 00 00 00
Received (SW1=0x00, SW2=0x00):
EF B6 09 2E ....
OSC:> OSC.exe -r "CREATOR CRT-603 (CZ1) CCR RF 0" -s FFCA010000
Sending: FF CA 01 00 00
Received (SW1=0x90, SW2=0x00):
4A 43 4F 50 32 34 32 52 33 00 JCOP242R3.
И, как видите, оба возвращают почти одинаковый результат.
Кто-нибудь может помочь мне понять, почему я получаю разные результаты для первой карточки?
Обратите внимание, что OCS.exe является исполняемым файлом OpenSC-Tool< /эм>