gpt4 book ai didi

io - 使用 javax.smartcardio 从智能卡读取序列号

转载 作者:行者123 更新时间:2023-12-01 09:05:10 25 4
gpt4 key购买 nike

所以我正在尝试编写一个小小程序,它使用 javax.smartcardio 库从智能卡读取序列号。智能卡已连接到bit4id阅读器,现在我成功连接到智能卡并读取了ATR和协议(protocol)(T=1)等基本信息。

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

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

现在我只收到 SW=6986 响应(无效命令)

任何建议,即使只是关于工作流程的建议,我们都将不胜感激!

最佳答案

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

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

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

上述内容并不“容易”,但可能是一个很好的挑战和学习经历。

关于io - 使用 javax.smartcardio 从智能卡读取序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41343269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com