【问题标题】:Installing Java Card applet using ACR122使用 ACR122 安装 Java Card 小程序
【发布时间】:2015-10-21 21:53:34
【问题描述】:

我是 Java Card 技术的新手,我刚开始阅读它。我想为我的卡创建一个智能小程序。我的目标是让它在非接触式使用的卡上工作。 我下载了 jar 文件 (GlobalPlatformPro) 以使用 NFC 读卡器 ACR122 在卡上安装 *.cap 文件。但不幸的是我得到了一个错误:

Exception in thread "main" java.lang.IllegalArgumentException: apdu must be at least 2 bytes long
        at javax.smartcardio.ResponseAPDU.check(ResponseAPDU.java:73)
        at javax.smartcardio.ResponseAPDU.<init>(ResponseAPDU.java:67)
        at sun.security.smartcardio.ChannelImpl.transmit(ChannelImpl.java:91)
        at pro.javacard.gp.GlobalPlatform.select(GlobalPlatform.java:203)
        at pro.javacard.gp.GPTool.main(GPTool.java:334)

我的第一个问题是,是否可以使用此阅读器编写小程序?其次,您会如何建议这样做?

【问题讨论】:

  • 你到底用的是什么卡?任何卡上都没有全球平台。
  • 嗨,@vojta 我知道编写小程序不需要读卡器。我想说我的目标是在真实卡上写 *.cap 文件。我刚刚创建了一个简单的 Java Card 项目。当我尝试在卡上安装小程序时引发错误。我将 ACR122 读卡器连接到我的电脑,启动终端并运行命令:'java -jar gp.jar -install applet.cap' 我正在使用读卡器随附的 Mifare 1K 卡。我应该再买一张卡吗?
  • @Krystian 是的,再买一张卡。 Mifare 1K 是一个简单的数据存储,不支持Java Card。 Mifare 不可编程,它不能运行任何自定义代码。例如,寻找 NXP 的 J2A081。或金雅拓的任何 SIM 卡。
  • @vojta 你能推荐我任何非接触式卡吗?
  • @Krystian J3A081、J3E145,均由 NXP...

标签: java applet nfc javacard acr122


【解决方案1】:

问题是您正在尝试将小程序上传到不支持 Global Platform 或 Java Card 的卡。 Mifare 1K 是一个简单的数据存储,它可以保存您使用其专有 API 写入的一些数据。它不能运行任何小程序,这张卡并不“智能”。

错误消息表明响应 APDU 比预期的短。 Mifare 响应不遵循 ISO7816,响应状态仅包含一个字节,尽管 ISO7816 要求至少两个字节长的状态字。

寻找另一张卡片。它应该支持JCOP,即要搜索的关键字。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 2015-06-09
  • 1970-01-01
  • 2011-10-20
  • 2015-08-27
  • 1970-01-01
相关资源
最近更新 更多