我在尝试验证德国银行卡的PIN码时卡住了(类型= 1,DDV,FINTS 2.2)。在下面的列表中,发送到卡的消息前面有"->",答案前面有"<-"。以下步骤描述了我所做的工作。
- 检查正确的 ATR 以验证是否插入了预期的卡
-
APDU 命令"选择根"
-> 00 a4 00 0c 3f00 <- 9000
-
APDU 命令"选择文件DF_BANKING_20"
-> 00 a4 04 0c 09 d27600002548420200 <- 9000
-
APDU命令"从所选文件中读取记录",这是EF_ID。这将返回一条记录,其中包含卡号、货币等信息
。-> 00 b2 01 cc 00 <- 90 00
-
下一步应该是"验证"。假设我们有一个 HBCI-PIN 12345。这必须转换为"格式 2 引脚",即 25 12 34 5f ff ff ff ff ff。这生成的 APDU 命令为
-> 00 20 00 81 08 25 12 34 5f ff ff ff ff -> 6985
响应代码表示"不满足条件"。所以这不是引脚验证错误。看起来我错过了一些满足所有所需条件的命令。
任何提示都会非常有价值。
HBCI官方网站上有很多规格:https://www.hbci-zka.de/包括PIN程序和卡处理流程。
确保您的卡支持离线普通 PIN 验证,以便直接使用卡进行处理。
可以是联机 PIN(加密)或脱机加密 PIN 选项。