【发布时间】:2016-07-19 04:23:57
【问题描述】:
我正在开发一个个人应用程序,使用 EMV 阅读器和 Javax SmartCardIO,我正在尝试从智能卡中获取所有纯数据,我一直在阅读规范和一些教程,甚至在这里阅读了一些问题,但我遇到一个问题:
我正在尝试获取 SFI 中记录的大小,以便使用该信息迭代所有记录。
我在一些教程中读到,我需要发送长度为 0 的请求,并且芯片将以错误代码和正确的记录长度(“6C XX”)来回答,但是在我的卡片中( Visa and AMEX)正在返回另一个响应,该响应转换为卡类型(“VISA ELECTRON and AMERICAN EXPRESS”),我没有收到“6c xx”错误。
到目前为止,我的代码如下所示:
byte[] commandArr = {(byte)0x00, (byte)0xB2, (byte)0x01, (byte)0x0C, (byte)0x00};
CommandAPDU commandTest = new CommandAPDU(commandArr);
ResponseAPDU test = this.channel.transmit(commandTest);
System.out.println(hexToAscii(bytesToHex(test.getBytes())));
两张卡都有 01 中第一个 PSE 记录的 SFI(通过 88 标签后的 select PSE 命令获得)。
我是使用这项技术的新手,我现在有点迷茫,欢迎任何帮助。
谢谢!
【问题讨论】: