gpt4 book ai didi

Javax SmartCardIO 奇怪错误 6700 长度不正确

转载 作者:行者123 更新时间:2023-12-02 04:10:23 25 4
gpt4 key购买 nike

我正在对一些未知的智能卡进行一些测试,我知道这些智能卡符合 ISO7816-4 标准。我收集的卡都来自同一个运营商,而且它们都可以互换使用。

我一直通过 Java SmartCardIO 库和 ACR122U 读卡器向卡发送 APDU 命令,并且还通过 ISODEP 库使用 Android 手机。

在我的 Android 设备上,我发送了以下 apdu,一切正常,

tag.transceive(new byte[] {(byte)0x80, (byte)0x30, (byte)0x03, (byte)0x00, (byte)0x00, (byte)0x00 })

10 张卡片中的所有 10 张都可以找到。

在我的桌面上有以下代码:

answer = channel.transmit(new CommandAPDU( new byte[] { (byte)0x80, (byte)0x30, (byte)0x03, (byte)0x00, (byte)0x00 } ));

此代码适用于 10 张卡中的 3 张,另外 7 张卡我收到 6700 长度不正确的错误。对于剩下的 7 个,我必须使用此代码,

answer = channel.transmit(new CommandAPDU( new byte[] { (byte)0x90, (byte)0x32, (byte)0x03, (byte)0x00, (byte)0x00,(byte)0x00, (byte)0x00 } ));

我也无法将此代码用于上述 3 张卡,我收到长度不正确的错误。

我不明白问题出在哪里,为什么添加额外的 2 个空字节就能让它工作?我在 Android 设备上没有遇到这个问题,所有卡都只使用一根字符串。

最佳答案

由于所有这些指令都属于专有范围,我对含义和情况不太有信心(减少?),但假设它们是允许命令数据和响应的情况 4。

您的所有 APDU 都明显格式错误。如果没有命令数据,则不得指定LC=0。零也不能是 LE,因为在没有 LC 的情况下,它要么以 1 个字节(短)编码,要么以 3 个字节(扩展长度)编码。附加两个零字节有效,意味着您正在成功地切换到扩展长度,

我建议引用 ISO 7816-4,命令响应对一章。

关于Javax SmartCardIO 奇怪错误 6700 长度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33856273/

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