Java SLE4428智能卡的问题

Java SLE4428智能卡的问题,java,smartcard,smartcard-reader,Java,Smartcard,Smartcard Reader,我有EZ100PU usb智能卡读卡器和新的(清晰的)SLE4428智能卡。我想把数字顺序写在上面。我正试图用简单的java应用程序来实现这一点。这是我基于互联网上其他可用信息的代码: public class Connection { public static void main(String[] args) throws Exception { TerminalFactory factory = TerminalFactory.getDefault(); Car

我有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);

  }
}
公共类连接{
公共静态void main(字符串[]args)引发异常{
TerminalFactory=TerminalFactory.getDefault();
CardTerminal=terminals.get(1);
System.out.println(“终端:+terminal.getName());
卡=终端。连接(“*”);
System.out.println(“卡:+卡”);
CardChannel=card.getBasicChannel();
System.out.println(“通道:+channel.getChannelNumber());
System.out.println(“协议:+card.getProtocol());
字节b[]=card.getATR().getBytes();

对于(int i=0;i您正在尝试使用连接到ISO 7816-3(T=0、T=1或T=CL)兼容处理器卡的方法来连接到低内存卡。您可能必须使用特定于卡的读卡器库,而不能仅使用
javax.smartcardio

您的SLE 4428卡具有默认PIN=FFFF。 首先,您需要使用以下命令验证PIN:- 法国法郎20 00 00 02法国法郎 然后您可以将数据写入SLE 4428卡。 如果数据为“我的名字是Kashyap”,则十六进制为4D79206E616D65206973204B617368796170。 写入数据:- FF D0 00 20 12 4D79206E616D65206973204B617368796170。 您还可以更改默认PIN。假设我想将PIN从FFFF更改为1234 使用以下命令:- FF D0 03 FD 03 FF 1234

要读取以下命令中的数据:- FF B000 20 12

谢谢,
Kashyap

那么你能告诉我有没有可能获得这些库以及如何获得这些库?或者使用不同的smard卡会更容易-你建议哪一种只在它们上写短数字序列?这些卡可以用于此目的,但你应该联系你的供应商,以获得阅读器和库的良好组合。不幸的是,我我不知道谁是原始供应商,因为我从私人那里购买了读卡器和卡片。所以我认为购买不同的智能卡会更容易。如果你能推荐一些我应该购买的卡片,以便在上面轻松书写(例如,使用javax.smartcardio或其他不同的简单方法)我真的很感激。一般来说,存储卡可能最适合这种用途,所以我会坚持使用它们,并从读卡器制造商那里寻找所需的库。它们应该是非常普通的卡,所以可能会有一些。它们也可能带有C/C++头文件,所以您可能需要JNI来通信带Java.javax.smartcardio的te可能不是一个好主意,它的级别太高了。如果你这样做,你可能想考虑一个DESFire卡,它应该包含一个(非常简单)APDU接口。您好,先生,又是我。我决定使用不同类型的智能卡,因为我无法从我的SLE4428卡中找到任何写入或读取的方法。我正在寻找您所说的DESFire卡,但从我发现的情况来看,它仅在非接触式版本中可用。因此,我需要使用像您所说的简单APDU来联系智能卡。可以吗你能说出一些我需要的卡片吗?不幸的是我找不到。我看你对smard卡片很熟悉,我非常感谢你的帮助。