SLE4428 智能卡的问题

Posted

技术标签:

【中文标题】SLE4428 智能卡的问题【英文标题】:Problems with SLE4428 smart card 【发布时间】:2012-12-11 00:22:17 【问题描述】:

我有 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”。可能正因为如此,我不能在卡上写任何东西,如果我尝试总是会出错。你能帮帮我吗?

【问题讨论】:

【参考方案1】:

您的 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

谢谢, 卡什亚普

【讨论】:

【参考方案2】:

您正在尝试使用一种连接 ISO 7816-3(T=0、T=1 或 T=CL)兼容处理器卡的方法来连接低存储卡。您可能不得不使用特定于卡片的读卡器库,而不能只使用 javax.smartcardio

【讨论】:

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

以上是关于SLE4428 智能卡的问题的主要内容,如果未能解决你的问题,请参考以下文章

智能卡未响应重置

什么是特定的智能卡传输协议?

与 IC 读卡器和 SLE5528 智能卡配合使用

Scard32.dll 和类似的

使用 ACR38 读卡器从 SLE 4442 智能卡读取数据

ACR38 阅读器和 SLE4442 Java 延迟