2

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

  }
}

カードがリーダーの中にあると、常に「不明なプロトコル16」が表示されるため、問題が発生します。おそらくそのせいでカードに何も書けないので、やってみるといつもエラーになります。手伝って頂けますか?

4

2 に答える 2

2

SLE4428カードのデフォルトのPINはFFFFです。まず、コマンドの下でPINを使用していることを確認する必要があります:-FF 20 00 00 02 FFFF次に、SLE4428カードにデータを書き込むことができます。データが「私の名前はKashyap」の場合、16進数では4D79206E616D65206973204B617368796170です。データの書き込み:-FF D0 00 20124D79206E616D65206973204B617368796170。デフォルトのPINを変更することもできます。PINをFFFFから1234に変更したいとします。次に、以下のコマンドを使用します。-FF D0 03 FD 03FF1234。

コマンドの下のデータを読み取るには:-FF B0 00 20 12

ありがとう、Kashyap

于 2015-06-26T07:06:28.457 に答える
0

ISO 7816-3(T = 0、T = 1、またはT = CL)互換のプロセッサカードに接続する方法を使用して、メモリの少ないカードに接続しようとしています。代わりに、カード固有のリーダーライブラリを使用する必要があります。単にを使用することはできませんjavax.smartcardio

于 2012-12-11T21:25:51.377 に答える