我有两台智能卡读卡器连接到我的电脑:
我阅读了两位读者的手册。如手册中所述,两者都使用以下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.
好吧,我首先在 ACR122U 读卡器的字段中放入ISO14443(也许是Mifare)卡,然后在 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
的执行文件答案 0 :(得分:0)
您正在处理相应的读者,而非卡片,因此可能存在差异。
我的假设是,你的第一张卡,虽然支持ISO 14443不是A型卡,因此没有ATS。值得检查的是,阅读器是否完全支持B类以及如何为B类卡检索ATQB。