我有以下验证(PIN(APDU命令,我们发送给金雅拓SafeNet Reader K1100:
00 20 00 81 08 26 12 34 56 ff ff ff ff
我总是得到67 00
的回复(长度错误(。据我所知,这意味着 LC 或 LE 不正确。
APDU 看起来是正确的,假设:
- 当前 DF 中存在 ID 为 1 的 PIN 码
- 该卡对 PIN 使用 BCD 格式并将它们填充为 8 个字节,或者 PIN 值包含奇怪的不可打印字符
您可以尝试 01 而不是 81,以确保在 MF 中搜索 PIN,或者尝试 00,假设卡隐式知道 PIN ID。如果两次尝试都失败,您必须收集有关卡初始化/个性化的更多信息。
由于验证命令没有结果,因此 LE 不会出错。但请注意,当使用 Java 类构造 APDU 时,LC 会自动添加,不得指定。
我唯一的另一个想法是,省略FF字节相应地调整LC。
你在用雅典娜吗?
如果是这种情况,请尝试 p2= A0