2010-05-12 255 views
6

我想了解由于项目分析原因,Java如何访问智能卡。我想知道是否有任何一种虚拟智能卡可以用来做一些Java测试?用Java访问智能卡

顺便说一下,我已经阅读了关于Java Card的内容,看起来它用于在卡中运行Java,而不是使用Java对智能卡数据进行访问,对吧?

回答

9

Look at this tutorial + example。和related。 (我用过这些例子,它们工作正常)。

重要的一点是,你不能从智能卡中获取任何东西。你只能将东西发送给它的处理器。因此,只要你得到一个PrivateKey对象,你实际上没有私钥 - 这只是智能卡处理器的一个代理,并且调用它的方法调用处理器。

虽然我不知道虚拟智能卡。

感兴趣的API是javax.smartcardio

+0

我“无法从智能卡中获取任何东西”并不意味着我无法获得它的公钥,我希望 – 2010-05-12 14:19:54

+1

好吧,我进一步发现了:http://www.java2s.com/Open -Source/Java-Document/6.0-JDK-Core/smartcardio/javax.smartcardio.htm – 2010-05-12 14:32:23

+0

您可以获得公钥,是 – Bozho 2010-05-12 14:33:31

2

没有与Java Card Development Kit捆绑的Java Card仿真器。如果您打算在某个阶段使用真正的卡,请获取版本2.2.1或2.2.2,因为我暂时不会期望任何版本3的卡。你仍然需要一个小程序来放在卡上。一张java卡片本身不会做任何事情。直到你加载一个卡片小程序,它才会执行任何有用的功能。

JCDK中的仿真器存在的一个问题是,您无法使用javax.smartcardio来访问该卡,并且此时与卡进行通信时这是首选方法。另一种流行的替代方案OpenCard Framework在一段时间内还没有得到积极维护。

1

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