使用Java访问智能卡

时间:2010-05-12 13:30:07

标签: java smartcard

由于项目分析,我正在努力了解Java如何访问智能卡。我想知道是否有任何类型的虚拟智能卡可供我用Java进行一些测试?

顺便说一下,我读过Java Card,看起来它用于在卡中运行Java,而不是使用Java运行智能卡数据,对吗?

5 个答案:

答案 0 :(得分:9)

Look at this tutorial + example。并且related。 (我使用过这些例子并且工作正常)。

重要的一点是,您无法从智能卡中获取任何信息。您只能将内容发送到其处理器。因此,无论何时获得PrivateKey对象,您实际上都没有私钥 - 这只是SmartCard处理器的代理,并且调用其上的方法会调用处理器。

但我不知道虚拟智能卡。

感兴趣的API是javax.smartcardio

答案 1 :(得分:2)

有一个与Java Card Development Kit捆绑在一起的Java Card模拟器。如果您计划在某个阶段使用真实卡,请获取版本2.2.1或2.2.2,因为我不希望任何版本3卡片暂时。你仍然需要一个小程序来装上卡。 Java卡本身没有任何作用。直到你加载一个卡片小程序,它才会执行任何有用的功能。

JCDK中的模拟器的一个问题是你不能使用javax.smartcardio来访问卡,这是目前与卡通信的首选方法。其他流行的替代方案OpenCard Framework在一段时间内没有得到积极维护。

答案 2 :(得分:1)

您可以在此处获取虚拟智能卡(和虚拟阅读器):http://sourceforge.net/projects/vsmartcard/

答案 3 :(得分:1)

Javacard使用Java只是Java开发的一个子集你最好不要使用Java开发环境因为有一些特效不支持 您可以下载插件或专用开发IDE,可以从www.javacos.com相关开发环境下载。

答案 4 :(得分:0)

如果您需要模拟JavaCard,请尝试使用jCardSim:http://jcardsim.org。 它还支持通过javax.smartcardio API和apdu-scripts进行访问。