smartcard - Native智能卡和Java智能卡的区别
问题描述
我想知道原生智能卡和java卡智能卡有什么区别?我知道Java卡智能卡有能力下载和删除小程序,我在javacardos论坛上读到java卡智能卡没有指针。如何从java卡中检测本机智能卡?还有什么不同吗?
解决方案
“智能卡”基本上是指带有包含完整 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。然而,可以选择默认的小程序,并且这样的小程序也可以实现该功能。
推荐阅读
- powerbi - Power BI - 保持关闭状态和删除退役状态所需的计数措施
- pyspark - 使用 pyspark,如何将列添加到 DataFrame 作为同一 DataFrame 中多个已知列的键值映射,不包括空值?
- ruby - 未定义的方法“甚至?” 对于 nil:NilClass 使用注入
- python - Python Tkinter 网格管理器忽略了先前项目的大小和包装框架
- python - 任何/所有python短路:为什么以下不起作用?
- arrays - 如何使用功能性 react-native 从 PanResponder 中删除第一张卡?
- python - Python Ctypes 0 大小的数组?
- javascript - 我如何从 FileReader() onload 获取数据
- android - 我可以在应用程序之外为 WorkManager 注册 Worker Factory 吗?
- apache-spark - 使用自定义插件和调度框架在 Kubernetes 上优化 Apache Spark