繁体   English   中英

如何找到我当地交通卡的AID号?

[英]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所有文件。

因此,可能的解决方案是:

  1. 通过标识符指令发送选择文件为

    00 A4 00 00 02 id 00

    id0000FFFF

  2. 一旦收到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 name4E 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM