gpt4 book ai didi

java - 读取 APDU 命令的响应

转载 作者:行者123 更新时间:2023-11-29 03:22:40 25 4
gpt4 key购买 nike

我正在尝试从智能卡中的文件中读取数据,我正在使用以下 APDU 命令

00 B0 00 02 00

但是我得到了这样的回应:

A1 1B 4F 0C A0 00 00 00 77 02 08 05 04 49 44 01 50 07 43 4E 49 2D 43 53 45 51 02 10 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 00 

如何转换或读取十六进制编码的值?

最佳答案

最后两个字节构成状态字 (SW),首先是 90,然后是 00。剩下的就是文件中二进制数据的十六进制编码。

看起来内容是 ASN.1 BER 编码的。所以你需要对响应进行 BER 解码。 BER 是 TLV(标签长度值)。所以前两个字节是标签和值,A1 1B。文本的含义是特定于上下文的(因此请查看此特定文件的规范)。所以你的文件实际上包含 2 + 1B 字节,或 29 个字节,其余的已保留为默认值 00

BER 解码在 ISO 7816-4 中指定,您真的应该了解有关基于文件的智能卡的任何内容。另请查看 Wikipedia page about ASN.1并查看解码值 here .

关于java - 读取 APDU 命令的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22736399/

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