尝试Java卡应用程序在真正的智能卡上

时间:2015-04-30 09:45:02

标签: javacard apdu

我将使用Java Card Framework编写一个智能卡应用程序。当我完成我的应用程序时,我想设置一个真正的智能卡并尝试它。我必须拥有哪些设备?我怎样才能运行我的代码?真正的智能卡?我必须在我的电脑和智能卡之间提供一个连接器,不是吗?

1 个答案:

答案 0 :(得分:5)

在IDE(例如Eclipse或Netbeans)中编写Java Card应用程序(我们称之为applet)后,您可以通过以下步骤在真实智能卡上与其进行通信:

  1. .java文件转换为.class文件
  2. 使用JCDK(Java Card Development Kit)中的.class工具将.cap文件转换为converter文件
  3. 上传卡上的.cap文件。
  4. 安装上传的小程序。
  5. 使用APDU命令在卡上选择小程序
  6. 与您的小程序通信。
  7. 第1步和第2步:

    如果您想使用Java Card v2.2.2或兼容v2.2.1的卡,只需将Eclipse-JCDE插件和Java Card Dev Kit添加到 Eclipse <,即可执行步骤1和步骤2 / em> IDE。 (一个简单的一步一步教程,使用此插件herehere

    如果您想使用兼容Java Card v3.x的卡,可以使用 Netbeans IDE的较新版本(我的版本为7.3),其中包含必要的工具和插件,以执行步骤1和默认情况下,步骤2。(一个简单的分步教程,here

    在这些步骤中,您将两个5-16个字节的数字设置为您的应用程序及其包作为applet AID(标识符)和包AID

    请注意,您可以在没有任何IDE且仅使用JCDK-s的情况下执行此步骤,但这有点棘手。此外,Netbeans IDE为JCDK模拟器添加了另一个Java Card模拟器(名为CREFJCWDE

    第3步和第4步:

    将智能卡读卡器(仅限智能卡写入器)连接到您的计算机。然后使用JCManager工具(简易使用)或更新的工具GlobalPlatformPro工具(易于使用,文档齐全,非常全面),您上传.cap文件并单独或同时安装applet 。 您需要使用卡的身份验证密钥才能上传和安装applet。

    第5步和第6步:

    通常,您的智能卡读卡器有一个工具可以让您与卡通信(发送APDU命令和接收数据和状态字),但您也可以使用一些免费的开源工具,如OpenSC-tool。首先,在其数据字段中使用applet的AID向卡发送SELECT APDU命令。其次,您将其他命令发送到卡上。

    注意:

    您可以使用Java中的javax.smartcardio包或Python中的PySCard库来编写步骤3,4,5和6的专有程序。(步骤5和6很容易,但是步骤3和4)有点困难;)

    “APDU”(应用程序数据协议单元)是用于将[接收]命令[响应]发送到[来自]卡的协议。