【发布时间】:2011-02-18 15:19:03
【问题描述】:
由于项目分析,我正在尝试了解 Java 如何访问智能卡。我想知道是否有任何类型的虚拟智能卡可以用来对 Java 进行一些测试?
顺便说一下,我读过 Java Card,看起来它是用来在卡片中运行 Java,而不是使用 Java 来访问智能卡数据,对吧?
【问题讨论】:
由于项目分析,我正在尝试了解 Java 如何访问智能卡。我想知道是否有任何类型的虚拟智能卡可以用来对 Java 进行一些测试?
顺便说一下,我读过 Java Card,看起来它是用来在卡片中运行 Java,而不是使用 Java 来访问智能卡数据,对吧?
【问题讨论】:
Look at this tutorial + example。和related。 (我已经使用了这些示例,它们运行良好)。
重要的一点是,您无法从智能卡中取出任何东西。您只能将内容发送到其处理器。因此,每当您获得 PrivateKey 对象时,您实际上并没有私钥 - 这只是智能卡处理器的代理,调用其上的方法会调用处理器。
不过,我不知道虚拟智能卡。
感兴趣的 API 是 javax.smartcardio
【讨论】:
Java Card Development Kit 捆绑了一个 Java Card 模拟器。如果您打算在某个阶段使用真正的卡,请获得 2.2.1 或 2.2.2 版本,因为我暂时不会期望任何版本 3 卡。您仍然需要一个小程序才能放在卡上。 java卡本身什么也不做。直到您加载卡片小程序,它才会执行任何有用的功能。
JCDK 中的模拟器的一个问题是您不能使用 javax.smartcardio 访问卡,这是目前与卡通信的首选方法。另一种流行的替代方案 OpenCard 框架已经有一段时间没有得到积极维护了。
【讨论】:
您可以在此处获取虚拟智能卡(和虚拟读卡器):http://sourceforge.net/projects/vsmartcard/
【讨论】:
Javacard使用Java只是Java开发的一个子集 你最好不要使用Java开发环境 因为有一些特殊效果是不支持的 可以下载插件或者专用的开发IDE,可以从这里下载www.javacos.com相关的开发环境。
【讨论】:
如果您需要模拟 JavaCard,请尝试使用 jCardSim:http://jcardsim.org。 它还支持通过 javax.smartcardio API 和 apdu-scripts 访问。
【讨论】: