[英]How to find AID number of my local transportation card?
我有一张城市交通运输卡。 我需要知道卡的帮助(应用程序标识符)号是多少。 根据EMV手册1,我必须使用AID列表方法(第141页)。 但是如何?
我也有一个ACR122U读卡器。 我可以向卡发送APDU命令。 我需要的只是卡的AID。 另外,我总是得到SW = 6A82错误。 这意味着“找不到文件”。 我想,我需要知道真实的AID号才能解决此问题。 我想看到SW = 9000(成功)响应...
编辑:用于创建select apdu命令的代码
private static final byte[] CLA_INS_P1_P2 = { 0x00, (byte)0xA4, 0x04, 0x00 };
private static final byte[] AID_ANDROID = { (byte)0xF0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
private byte[] createSelectAidApdu(byte[] aid) {
byte[] result = new byte[6 + aid.length];
System.arraycopy(CLA_INS_P1_P2, 0, result, 0, CLA_INS_P1_P2.length);
result[4] = (byte)aid.length;
System.arraycopy(aid, 0, result, 5, aid.length);
result[result.length - 1] = 0;
return result;
}
谢谢..
通常,您应该查找卡文档,其中应描述文件的组织方式。
但是,由于您正在读取ISO-DEP卡,因此可以参考ISO/IEC CD 7816-4
。 该卡应执行本标准中的部分说明。 根据5.2节,可以使用其标识符选择文件,这意味着您可以枚举MF
所有文件。
因此,可能的解决方案是:
通过标识符指令发送选择文件为
00 A4 00 00 02 id 00
id
在0000
到FFFF
。
一旦收到SW=9000
,响应应包含文件控制信息(FCI,请参见第5.6节)。 然后,您可以在字节84
之后找到DF name
。 例如,卡片回应
6F 15 84 0D 4E 43 2E 65 43 61 72 64 2E 44 46 30 31 A5 04 9F 08 01 02 90 00
,
DF name
为4E 43 2E 65 43 61 72 64 2E 44 46 30 31
。 84
之后的字节0D
表示DF name
的长度为0x0D
。 您可以将其用作AID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.