如何使用java card apdu从智能卡写入和读取数据

时间:2011-11-25 04:36:40

标签: java byte smartcard javacard apdu

我已经编写了一个小程序并将其安装在智能卡中。但我不知道如何读写数据到智能卡?

private void readName(APDU apdu) throws ISOException
{
    byte[] apduBuffer = apdu.getBuffer();
    for (byte i=0; i<userName.length; i++)
    {
        apduBuffer[5+i] = userName[(byte)i] ;
    }
    apdu.setOutgoing();
    apdu.setOutgoingLength((short)userName.length);
    apdu.sendBytes((short)5, (short)userName.length);
}

从智能卡读取数据是否正确?

请告诉我如何使用javacard将数据写入智能卡。

2 个答案:

答案 0 :(得分:1)

您的卡是联系人或非接触式。既然你说你已经安装了applet,我假设你有卡的钥匙。

如果是这样,为了与您的卡通信,您需要执行以下操作:

  1. 首先使用安装小程序的安全域进行身份验证
  2. 选择小程序的AID
  3. 使用SEND将数据发送到applet。
  4. 在响应中,您将看到从Applet发送的字节:

    apdu.setOutgoingLength((short)userName.length);
    apdu.sendBytes((short)5, (short)userName.length);
    

    如果您还需要更多内容,则需要提供有关您尝试完成的更多详细信息。

答案 1 :(得分:0)

我找到了解决方案。实际上我正在使用eclipse作为编辑器java卡插件安装在其中。当我在智能卡上运行程序时,它每次都在以前的applet上安装最新的applet。看到结果我们可以使用pyapdu工具它是很好。感谢所有回复..