我有一张支持Java Card的智能卡和一个读卡器,由我的实验室指导员提供。我应该使用Java Card 2.1.1 API做一个项目。
我不喜欢Java Card API。
是否可以使用C之类的任何其他语言对我的智能卡进行编程?
答案 0 :(得分:2)
一般答案:
不幸的是,目前除了使用Java Card API编程Java Card兼容卡之外别无其他方法。
详细答案:
某种卡片有一种名为“Secure Box”的机制。如JCOP v2.4.2 r3 card Security target中所述:
Secure Box是一种允许运行非认证第三的构造 派对本机代码并确保此代码不会受到伤害,影响或 操纵JCOP 2.4.2 R3操作系统或任何小程序 由操作系统执行。本机代码的分离 来自其他代码的Secure Box和/或驻留在硬件上的数据是 由经过硬件认证的硬件MMU确保 评价。
Here和here您可以看到有关Secure Box的一些信息。据我所知,您可以用 C 或 Assembly 语言编写应用程序,并将它们上传到Secure Box上。但这真的很棘手,我想最后你会改变你对 Java Card API 的看法,你会决定尝试不仅喜欢它,还喜欢它! ;)
请注意,与Java Card相比,还有一些名为“Native Cards”的其他类型的卡。此卡中的操作系统不是Java Card Runtime Environment / Virtual Machine。这些卡具有专有/制造商特定的方式和语言(通常为C或汇编)来开发应用程序。但它并不像Java Card applet开发那么容易。你会做出决定......再次爱上它:D
更新:(感谢亲爱的Vojta)
对不起,我忘记了。正如Vojta在评论中提到的,最着名的本地卡类型之一是MULTOS。您可以使用 C,Java,汇编和其他语言为这些卡编写程序,之后必须使用 SwiftCard将它们转换为 MELL (MULTOS卡的语言) 工具(由SwiftC和SwiftJ组成......)。一些好的文档here和here。