当前位置: 首页 > 知识库问答 >
问题:

读取串行从智能卡与javax.smartcardio

公羊浩阔
2023-03-14

因此,我正在尝试编写一个小applet,它使用javax从智能卡读取序列号。smartcardiolibrary。智能卡与bit4id读卡器连接,现在我成功连接到智能卡并读取基本信息,如ATR和协议(T=1)。

我对此做了一些研究(例如:http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx#table9)

但我不知道我应该向卡上发送哪一个命令apdu来获取序列号。有没有一种“简单的方法”可以做到这一点,而不必阅读大量的论文和手册?我想我需要一些数据表来了解数据是如何存储在卡中的,对吗?或者我可以发送某种命令APDUs来从卡中检索这些信息吗?

目前我只收到SW=6986响应(无效命令)

任何建议,哪怕只是关于工作流程的建议,都将不胜感激!

共有1个答案

阎乐池
2023-03-14

没有一种方法可以读取智能卡序列号。“智能卡”是7816规范中定义的ISO/IEC标准。许多行业使用这一标准,如移动SIM卡、银行卡和数字签名卡。

该标准在不同行业的实施情况有所不同,一些行业通过自身的附加APDU等来推进该基本标准,如移动SIM卡中的3GPP/GSMA标准或银行中的EMV标准。

无论如何,假设该卡符合智能卡ISO/IEC 7816,您可能会假设它使用基于文件的存储来存储卡数据。您可以使用“选择”命令(在7816-4中定义)尝试访问所有可用文件并打印这些信息。i、 e.文件由两个字节标识,比如3F00,您可以从0000000 10002中选择。。。。FFFF然后,如果您成功选择(状态词90),则读取内容并打印。这样做,你可能能够确定哪个文件有“序列号”,那么你只需要继续阅读这个文件。

以上这些并不“容易”,但可能是一个很好的挑战和学习经验。

 类似资料:
  • 我正试图从智能卡读取证书, 这是我从http://www.developer.com/java/other/article.php/3587361/Java-Applet-for-Signing-with-a-Smart-Card.htm我将在applet中执行这段代码,问题是每个用户都必须向我指出他们的本地pkcs11。。。dll,使用java samrtcard api是否可以避免加载此dll

  • 我使用ACR122U-A9读取智能卡,通过以下APDU,我可以获取UID和ATS: 使用NXP TagInfo应用程序(android),我可以看到一个包含我所需数据的十六进制表。使用什么APDU命令可以检索这些数据? 六边形表如下所示: [0000]中是我想要检索的数据。

  • 我有行车记录仪公司卡,用于在允许客户通过远程下载方式下载行车记录仪数据之前,对客户进行身份验证。下面代码中使用的APDU命令是行车记录仪和公司卡之间成功认证的命令。 双方之间的联系如下: 行车记录仪 如上所述的通信运行良好,应用用户正在进行身份验证。现在我试图读取一些信息直接从公司卡没有应用程序如下: 我的客户端程序 在我的客户端程序中,我使用的是从Android应用程序发送到公司卡的相同APDU

  • 问题内容: 因此,最近我一直在使用具有一些信息的智能卡,而我想要在此处实现的目标是使用智能卡读取器通过任何Android智能手机从这些智能卡中获取此数据。我一直在使用HID OMNIKEY 3021 USB 智能卡读取器来读取这些卡(而且我知道此读取器可通过Windows应用程序与这些卡配合使用,因为我已经对此进行了亲自测试) 现在,Android提供了USB主机,只要Android智能手机支持它

  • 我有一个Java应用程序,可以从智能卡读取证书,并使用它们登录用户。该应用还可以使用其他登录方法(用户名和密码)跟踪失败的登录尝试。 我想知道是否有可能在没有引脚的情况下从智能卡中读取用户信息?我想将失败的pin条目标记为失败的登录尝试,但是因为我需要pin从证书中读取别名,所以我无法知道哪个用户正在尝试登录。有没有读取这些信息没有引脚在Java? 我根据这个线程的建议尝试加载KeyStore对象

  • 我已经实现了一个Andoid应用程序-服务器端应用程序。服务器与智能卡读卡器通信。当用户在Android应用程序中触摸按钮时,将构建一个连接到服务器以验证用户。应用和服务器之间交换的消息具有以下格式: 如果消息的类型值,则表明智能卡读卡器中存在错误 如果消息的类型值,则表明智能卡中存在错误 我使用如下代码与智能卡读卡器进行通信: 智能卡IO API具有异常的类。我的问题是,我不知道何时发送类型为或