2010-05-12 93 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相關的開發環境。