我正在学习Java如何访问智能卡,以进行项目分析。我想知道是否有任何虚拟智能卡可供我使用,以便在Java中进行一些测试?
顺便说一下,我已经了解了Java Card的相关内容,看起来它是用于在卡片中运行Java,而不是使用Java访问智能卡数据,对吗?
查看此教程和示例。以及相关内容。(我已经使用这些示例,并且它们运行良好)。
一个重要的点是你无法从智能卡中获取任何东西。你只能将事物发送到其处理器。因此,每当您获得PrivateKey
对象时,您实际上并没有私钥——这只是智能卡处理器的代理,并调用它上面的方法会调用处理器。
我不知道虚拟智能卡,尽管。
一个有趣的API是javax.smartcardio
Java Card开发工具包中附带了Java Card仿真器。如果您计划在某个阶段使用实际卡片,请获取版本2.2.1或2.2.2,因为我不会预期会有任何版本3的卡片出现。您仍需要一个Applet放在卡上。 Java Card本身无法执行任何有用的功能。只有在加载卡Applet后,它才能执行任何有用的功能。
JCDK中仿真器的一个问题是,您无法使用javax.smartcardio访问卡片,而这是目前与卡通信的首选方法。另一个流行的替代方案OpenCard Framework已经有一段时间没有得到积极维护。