当前位置: 首页 > 知识库问答 >
问题:

两个读卡器对获取数据命令的响应不同

柳豪
2023-03-14

我有两个智能卡读卡器连接到我的电脑:

  1. ACS ACR122U非接触式读卡器
  2. CRT-603-CZ1非接触式读卡器

我读了两位读者的手册。如手册中所述,两者都对GET DATA APDU命令使用以下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阅读器的字段中,然后在CRT-603-CZ1的字段中放置了一张ISO14443(也许是米费)卡,然后尝试了上面的命令:

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工具的执行文件

共有1个答案

章茂
2023-03-14

你是在给各自的读者说话,而不是卡片,所以很可能会有差异。

我的假设是,您的第一张支持ISO 14443的卡不是a类卡,因此没有ATS。可能值得检查的是,读卡器是否支持类型B,以及如何为类型B卡检索ATQB。

 类似资料:
  • 我想从2个mysql表中获取数据。 表tbl_1: 表tbl_2: 我试过这个: 我的结果是: 结果看起来不错,但并不完美。我得到许多空行,它们不在结果中。结果中只应包含前两行。 我的错在哪里?

  • 我现在正在开发一个简单的IMAP-客户端。要接收消息正文,我使用命令“UID FETCH mage-UID BODY. PEEK[]”。问题是我能确定命令上的服务器响应之一将是“*消息序列号FETCH(UID mage-UID BODY[]mage-body)”吗?或者我应该准备好接收任何可能的FETCH响应(如消息信封)?我知道我可以以“*消息序列号FETCH(FLAGS标志)”的形式接收消息标

  • 我正试图成为一个动觉消费者客户。为了解决这个问题,我阅读了《Kinesis开发人员指南》和AWS文档http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-record-processor-implementation-app-java.html. 我想知道是否有可能从两个不同的流中获取数据并进行相应的处理。 假设我有两个不同的流,分别是流1和流

  • 我有一个来自IDP的saml2.0响应令牌,我使用OpenAM作为服务提供商。我想使用openAMJavaapi阅读SAML并验证响应。感谢任何帮助。提前感谢。

  • 它在给定时间仅显示一个命令 如果我写或它不会工作,但如果我写它会输出 如果我切换前面的字符,它将变为或不起作用,但是工作和说再见

  • 问题内容: 我正在发出HTTP请求并侦听“数据”: 问题在于响应是分块的,因此“数据”只是发送回的一部分内容。 我如何将全身退回? 问题答案: