首页 > 解决方案 > Native智能卡和Java智能卡的区别

问题描述

我想知道原生智能卡和java卡智能卡有什么区别?我知道Java卡智能卡有能力下载和删除小程序,我在javacardos论坛上读到java卡智能卡没有指针。如何从java卡中检测本机智能卡?还有什么不同吗?

标签: smartcardjavacard

解决方案


“智能卡”基本上是指带有包含完整 CPU 的 SoC 的处理器卡。Java Card 在智能卡之上运行。

肯定有基于文件的卡包含完整的 ISO/IEC 7816-4/9/11 文件系统,尽管这些通常也有专有部分(这在某种程度上是必需的,因为 ISO/IEC 7816-4 不包含完整的规范需要实施什么,并留下许多空白由实施者填写)。

对于 Java Card,您基本上必须实现特定功能所需的那些 APDU。那里曾经有一个文件系统 API,但它早已被弃用,无论好坏。

没有任何特定的命令可以告诉您卡是否为 Java 卡。某些卡在交付给客户端时在 ATR 中有一组特定的历史字节。但是,这些也可以设置为不同的值。

如果要检查卡是否为 Java 卡:尝试查看卡上是否有卡管理器,使用 SELECT by AID 和开放和全球平台 AID 的. 如果他们成功了,那么这是一个很大的暗示,表明该卡是 Java 卡。

因为 Java Card 中的每个应用程序 DF 都是按名称选择的,所以您通常不会在根文件夹中找到 SELECT by DF ID 工作。如果在您选择 Java Card 小程序之前(即当您处于根目录时)这些都不起作用,那么该卡可能是Java Card。然而,可以选择默认的小程序,并且这样的小程序也可以实现该功能。


推荐阅读