gpt4 book ai didi

java - 无法选择 ISO-7816-4 智能卡上的文件

转载 作者:太空宇宙 更新时间:2023-11-04 07:48:20 25 4
gpt4 key购买 nike

我正在尝试使用 ISO-7816-4 eVCR(电子车辆登记卡)读取数据javax.smartcardio。每当我尝试从卡中选择文件时,我都会收到软件代码 6A86翻译为“P1 或 P2 参数不正确”。我尝试了许多值的组合P1和P2得到相同的结果。卡本身可以与其他程序一起正常工作,并且示例代码可以与其他卡一起正常工作。我遇到问题的卡与 this question 中的卡相同。 .

这是我使用的代码: 卡card =terminal.connect("*"); System.out.println("ATR: "+ Utils.bytes2HexString(card.getATR().getBytes()));

    byte aid[] = {(byte)0xA0, 0x00, 0x00, 0x00, 0x77, 0x01, 0x08, 0x00, 0x07, 
0x00, 0x00, (byte) 0xFE, 0x00, 0x00, (byte) 0xAD, (byte) 0xF2};
ResponseAPDU response = null;
CardChannel channel = card.getBasicChannel();
response = channel.transmit(new CommandAPDU(0x00, 0xA4, 0x04, 0x0C, aid));
System.out.println("AID: " + response);

response = channel.transmit(new CommandAPDU(0x00, 0xA4, 0x02, 0x00, new byte[]{(byte)0xD0, 0x01}));
System.out.println("SELECT: " + response);

输出是:

    ATR: 3B:DB:96:00:80:B1:FE:45:1F:83:00:31:C0:64:1A:18:01:00:0F:90:00:52
AID: ResponseAPDU: 2 bytes, SW=9000
SELECT: ResponseAPDU: 2 bytes, SW=6a86

我看不出我做错了什么。有些卡是否需要额外的初始化步骤或一些额外的参数来选择?

最佳答案

您可以使用0x0C作为P2(而不是0x00)吗?也许文件ID是正确的,但它无法返回任何文件信息(0x0C表示:不返回文件信息)。

这是否会影响返回的状态字,取决于卡操作系统和/或应用程序。

关于java - 无法选择 ISO-7816-4 智能卡上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14926559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com