java - SLE4428 智能卡问题

标签 java smartcard smartcard-reader

我有 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/

相关文章:

java - 如何使用 Spring 邮件 API 捕获嵌套的 SMTPAddressFailedException

java - 如何用java制作 View 之间的导航系统

nfc - 是否可以用 Android 设备模拟 felica 卡?

c - 使用 RSA 的 Visa 测试卡解密错误

smartcard - 发送扩展 APDU 到 Javacard

c# - 智能卡读卡器插件(已插入卡)事件

java - 数组和具体化类型

java - 在 HIDE_ON_CLOSE 之后显示 FrameView

c# - 移除 X509Certificate2 对象的智能卡时的事件

windows - 列出使用智能卡读卡器的进程