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

Trying Java Card Application On real smart card

我将使用 Java 卡编写一个智能卡应用程序 Framework.When 我完成了我的应用程序 我想设置一个真正的智能卡并尝试 it.Which 设备 我必须有吗?我怎样才能 运行 我的代码在真正的智能卡上?我必须在我的计算机和智能卡之间提供一个连接器,不是吗?

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

  1. .java 文件转换为 .class 文件
  2. 使用 JCDK(Java 卡开发工具包)中的 converter 工具将 .class 文件转换为 .cap 文件
  3. 上传卡上的 .cap 文件。
  4. 安装上传的小程序。
  5. Select你卡上的小程序使用APDU命令
  6. 与您的小程序通信。

第 1 步和第 2 步:

如果您想使用 Java Card v2.2.2 或 v2.2.1 兼容卡,只需添加 Eclipse-JCDE plugin and Java Card Dev Kit to Eclipse IDE. (A simple great step by step tutorial to use this plugin here and here)

即可完成第 1 步和第 2 步

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

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

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

第 3 步和第 4 步:

将智能卡 reader(仅供参考,它也是智能卡写入器)连接到您的计算机。然后使用 JCManager tool (Easy use), or the newer tool named GlobalPlatformPro 工具(易于使用,文档齐全,非常全面)上传 .cap 文件并单独或同时安装小程序。 您需要您的卡的身份验证密钥才能获得在其上上传和安装小程序的权限。

第 5 步和第 6 步:

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

备注:

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

"APDU"(应用数据协议单元)是用于向卡[从]卡发送[接收]命令[响应]的协议。