关于智能卡编程的一般回答是,你需要准备好浏览一份混乱的工具和技术清单。通常情况下,智能卡开发者会从一个特定的硬件平台开始考虑,这比简单的 "javacard" 更加具体。
既然你特别提到了 javacard,我们可以关注一些起点。
Javacard SDK
你可以从
javacard dev kit 开始。我没有使用最新版本 - 我还在使用2.0.2。这个 dev kit 是非常命令行导向的,所以请期待在IDE之外完成大部分工作。然而,文档非常有帮助,并且应该可以让你很快上手。无论如何,它都是一个不错的起点,因为它是官方的。
EclipseJCDE看起来也很有趣,但我没有使用过它。我似乎记得另一个项目旨在构建javacard Eclipse工具,但我可能只是在想EclipseJCDE。
IBM工具
曾经,IBM发布和维护了一套与Eclipse IDE集成的JCOP工具。这个好处是他们会向您发送一个包含一些开发工具和几张JCOP卡的软件包。令人烦恼的是需要一个"激活码"。可以
在这里看看。下载链接仍然有效,请祝你好运使用那里列出的电子邮件地址。还要注意,这些工具需要较旧版本的Eclipse。构建/调试支持非常好,包括内置的javacard模拟器。
全球平台
如果您计划进行javacard编程,您还应该了解全球平台(Global Platform)。它是一个智能卡标准,在javacard的上下文中,当您需要加载和管理javacard applets时,您需要了解GP规范。这对于使用JCOP卡是必需的。要获取最新的GP规范,请搜索“GlobalPlatform Card Specifications”。您需要非常熟悉基本的智能卡概念,例如APDU。
硬件
对于我来说,硬件选择过于复杂,无法提供有用的建议,除了上面提到的JCOP东西。正如我所提到的,如果您可以使用IBM套件,则可以通过Eclipse工具获得良好的JCOP/javacard模拟器。我相信还有其他卡模拟器可用。
等等。
除此之外,智能卡程序员使用的其他技术规范有很长的清单,不幸的是其中许多规范并不是免费提供的(ISO文档)。如果您将要进行GSM编程,我认为您可以获得所有GSM规范,请搜索
ETSI GSM规范。 GSM 11.11对于学习更多关于APDU命令/响应的内容非常有用,如果没有访问ISO规范(例如ISO 7816-4)。