- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 javax.smartcardio
包使用 Java 为智能卡编写一个小应用程序,但我在 ATR(重置应答)方面遇到了一些问题。 card.getATR()
方法不会重置卡片。它返回 ATR 字节,但不会将卡片返回到 MF 状态。
这是我的例子:
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals = factory.terminals().list();
// get the first terminal
CardTerminal terminal = terminals.get(0);
// establish a connection with the card
Card card = terminal.connect("T=0");
ATR atr = card.getATR(); //atr.getBytes() <- correct
CardChannel channel = card.getBasicChannel();
ResponseAPDU r;
// STEP 1. select file in MF
r = channel.transmit(new CommandAPDU(new byte[]{0,(byte)0xA4,(byte)0x02,(byte)0x0C,(byte)0x02,0,(byte)0x02,0}));
// r.getBytes() == 90 00 <- correct
// STEP 2. select DF
r = channel.transmit(new CommandAPDU(new byte[]{0,(byte)0xA4,(byte)0x04,(byte)0x0C,(byte)0x02,(byte)0x05,0}));
// r.getBytes() == 90 00 <- correct
atr = card.getATR(); // answer to reset
// STEP 3. select file in MF, as in STEP 1
r = channel.transmit(new CommandAPDU(new byte[]{0,(byte)0xA4,(byte)0x02,(byte)0x0C,(byte)0x02,0,(byte)0x02,0}));
// r.getBytes() == 6A 82 <- fail, not found
card.disconnect(false);
我的错误在哪里?或者我怎样才能重置卡?
最佳答案
Card.getATR()
没有指定它重置卡片。它只是返回从卡中请求的 ATR。您可能应该使用 disconnect(true)
相反,然后重新连接到卡。
关于java - getATR() 不会重置 javax.smartcardio 中的智能卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17453189/
我正在学习 javax.smartcardio 类。我正在使用 eclipse 3.6 并且我有 JDK 6 SE。我可以使用语句 import javax.smartcardio.* 或其任何单独的
我必须读取 MASTERCARD、VISA、VISA ELECTRON 等的主帐号 (PAN)。我写了这段代码,但它不起作用有人可以帮助我吗? import java.util.List; impor
我正在学习 javax.smartcardio 类(class)。我使用的是 eclipse 3.6,我有 JDK 6 SE。我可以使用语句 import javax.smartcardio.* 或其
我正在使用javax.smartcardio通过CardChannel.transmit(CommandAPDU command)向智能卡发送APDU命令。 但是,似乎在某处定义了超时,因为当我没有收
我需要通过 NFC 将 Android 移动设备 Nexus S 与 Topaz 标签进行通信。我已经完成了从卡中读取数据的 java 程序,但这使用了 javax.smartcardio java
我的程序有一点问题。第一次插入读卡器时,一切正常,程序找到读卡器,但是当在程序期间,我断开读卡器的连接,然后再次插入,然后再次运行搜索时,程序无法找到读者。我只有 CardException 消息:l
我正在对一些未知的智能卡进行一些测试,我知道这些智能卡符合 ISO7816-4 标准。我收集的卡都来自同一个运营商,而且它们都可以互换使用。 我一直通过 Java SmartCardIO 库和 ACR
所以我正在尝试编写一个小小程序,它使用 javax.smartcardio 库从智能卡读取序列号。智能卡已连接到bit4id阅读器,现在我成功连接到智能卡并读取了ATR和协议(protocol)(T=
从 Sun 的 jdk (1.8) 迁移到 Openjdk12 后 - Eclipse 无法识别“javax.smartcardio”的整个库。 例如: import javax.smartcardi
我正在开发基于 RFID 的考勤监控系统。我使用 Mifare 1k Classic 作为我的 RFID,使用 ACR122u 作为我的阅读器。我了解到您可以使用 STORE VALUE BLOCK
全部, 我很欣赏本网站上的许多有用答案,但我发现有必要发布我的第一个问题(如果您发现我的帖子有任何需要改进的地方,请告诉我)。 我有一个中等大小的带有 GUI 的 Java 程序,它充当“中间人”和
我正在使用 javax.smartcardio 包使用 Java 为智能卡编写一个小应用程序,但我在 ATR(重置应答)方面遇到了一些问题。 card.getATR() 方法不会重置卡片。它返回 AT
Android 上是否有 javax.smartcardio 类似物?但不使用 Open Mobile API。 谢谢! 最佳答案 我在名为 SCUBA 的项目中使用 javax.smartcardi
我正在开始一个新项目,我是使用 EMV 阅读器和 Javax SmartCardIO 的新手。 我有每种卡的 RID 列表,但是在不知道卡类型的情况下我唯一可以访问的是 ATR,我想知道是否有办法获取
我正在使用 javax.smartcardio与智能卡读卡器通信。 我还有一个微型 SD 卡,上面运行着 Java Card 小程序。然而javax.smartcardio无法将微型 SD 卡识别为
是否可以在没有实际卡“连接”的情况下使用 javax.smartcardio 将 APDU 发送到 NFC 读卡器(例如 ACR1222L)?根据我的 API 调查,您只能使用从 Card 获取的 C
你好, 我正在使用 编写 Java 应用程序 javax.smartcardio.*; 德国身份证的uid(32位)是在每次访问时随机生成的。atr(152 位)保持不变。 目前,我采用 rfid 卡
我正在创建一个 java 应用程序,通过 PC/SC 非接触式读卡器和 javax.smartcardio API 与 Mifare DESFire 卡通信。我设法发送常规 ISO 7816 APDU
我有一个用于 tikitag 网络服务的旧 NFC 阅读器(后来更名为 touchatag ,最终在 2012 年左右被废弃)。由于该网站不再可用,我无法再找到原始的 tikitag/touchata
我正在尝试使用带有以下代码的 javax.smartcardio API 加载智能卡终端: public CardTerminal getReadyCardTerminal() throws Card
我是一名优秀的程序员,十分优秀!