我有一个非接触式芯片卡(不是银行或SIM卡),我可以通过NFC频道进行互动(ISO14443,ISO 7816第4部分)。
我想从这张卡中得到的就是获取该卡的UID,这可以帮助我将一张卡与其他卡区分开来。据我所知,这是PAN值,我可以在标签'5A'下得到。
首先,我可以将此命令发送到卡
00:a4:04:00:0e:32:50:41:59:2e:53:59:53:2e:44:44:46:30:31:00
并获得具有AID值的肯定答案(SW:9000)。
所以,我有AID,我可以发送这样的命令
00:a4:04:00:LеnAID:<AID>:00
打开文件,在不同的Tag下读取基于TLV的信息,我是对的吗?
但是当我发送('5A' - PAN的标签)
00:CA:00:5A:00
我的反应不好 - &gt; 6E:00
所以,
1)我应该更改Class值(现在CLA = 00)吗?什么价值?
2)也许我必须更改READ RECORD(B0或B2或其他)的INS值,因为“内核使用AFL的值(即标记'94')发出一个或多个READ RECORD命令检索应用数据元素“,在我的情况下标签'5A'用于PAN。 如果是这样,获得PAN的完整工作流程应该是什么?
UPD。 当我发送
ff:ca:00:00:00
我收到了
6e:00
答案 0 :(得分:1)
对于我来说未知的原因我无法在命令
上获得肯定答案FF:CA:00:00:00
我得到了答案6E:00
但我找到了另一种获取卡信息的方法。我必须执行一个而不是一系列命令:
1)首先,我必须找出小程序的AID。如果您知道AID,则可以跳过此步骤(在我的情况下为2PAY.SYS.DDF)
00:a4:04:00:0e:32:50:41:59:2e:53:59:53:2e:44:44:46:30:31:00
2)然后选择申请
00 A4 04 00 AID-Lenth AID
3)之后我们获得处理选项
80 A8 00 00 02 83 00 00
4)和READ RECORD
00 B2 01 14 00
为解码TLV响应我使用此实用程序 - https://www.emvlab.org/tlvutils 作为回应,我不仅获得了5A标签,还获得了其他标签,现在我必须解析整个R-APDU以获取特定标签值。
是否有用于解析TLV响应的java-lib?