我有 EZ100PU USB 智能卡读卡器和新的(透明)SLE4428 智能卡。我想在它们上写下数字序列。我正在尝试用简单的java应用程序来做到这一点。这是我基于互联网上其他可用代码的代码:
public class Connection {
public static void main(String[] args) throws Exception {
TerminalFactory factory = TerminalFactory.getDefault();
CardTerminal terminal = terminals.get(1);
System.out.println("terminal: " + terminal.getName());
Card card = terminal.connect("*");
System.out.println("card: " + card);
CardChannel channel = card.getBasicChannel();
System.out.println("channel: " + channel.getChannelNumber());
System.out.println("protocol: "+card.getProtocol());
byte b[]=card.getATR().getBytes();
for(int i=0;i<b.length;i++)
System.out.print(b[i]);
// byte[] bytes = {(byte)0xFF, (byte)0x00, (byte)0xFF, (byte)0x00};
// ResponseAPDU r = channel.transmit(new CommandAPDU(bytes));
card.disconnect(false);
}
}
我有问题,因为当卡位于读卡器内时,我总是收到“未知协议(protocol) 16”。可能是因为我无法在卡上写任何东西,如果我尝试总是会出错。你能帮我吗?
最佳答案
您的 SLE 4428 卡的默认 PIN = FFFF。 首先,您需要使用以下命令验证 PIN 码:- FF 20 00 00 02 FFFF 然后就可以向SLE 4428卡写入数据了。 如果数据是“我的名字是 Kashyap”,则十六进制格式为 4D79206E616D65206973204B617368796170。 写入数据:- FF D0 00 20 12 4D79206E616D65206973204B617368796170。 您还可以更改默认 PIN 码。假设我想将 PIN 从 FFFF 更改为 1234 使用以下命令:- FF D0 03 FD 03 FF 1234。
读取以下命令的数据:- FF B0 00 20 12
谢谢, 卡什亚普
关于java - SLE4428 智能卡问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811647/