使用java commandAPDU读取SLE4442智能卡中的写入数据?

我想在SLE4442智能卡上读写数据我有ACR38U-i1智能卡读卡器

对于写入,我使用此命令APDU

byte[] cmdApduPutCardUid = new byte[]{(byte)0xFF, (byte)0xD0, (byte)0x40,(byte)0x00, (byte)4,(byte)6,(byte)2,(byte)6,(byte)2}; 

并为读取数据

 byte[] cmdApduGetCardUid = new byte[]{(byte)0xFF,(byte)0xB0,(byte)0x40,(byte)0x00,(byte)0xFF}; 

两者都是执行并发送SW = 9000但没有一个数据接收响应APDU就像我写6262数据但它没有收到

我也在写入和读取命令之前使用Select命令

select命令是

 byte[] cmdApduSlcCardUid = new byte[]{(byte)0xFF,(byte)0xA4,(byte)0x00,(byte)0x00,(byte)0x01,(byte)0x06}; 

有没有人在SLE4442智能卡中读取和写入正确的java代码?

与存储卡协同工作相关的APDU命令对于不同的读者可能有所不同,并且实现了支持。 以下是OmniKey阅读器的示例 。

查看您的ACR阅读器规范并使用特定的Pseudo-APDU命令与SLE 4442配合使用。

对于你的问题:

4.6.1 SELECT_CARD_TYPE"FF A4 00 00 01 06" ,其中数据中的0x06表示“Infineon SLE 4432和SLE 4442”

4.6.2 READ_MEMORY_CARD"FF B0 00 [Bytes Address] [MEM_L]" ,其中

  • [Bytes Address] :是存储卡的存储器地址位置
  • [MEM_L] :要从存储卡读取的数据长度

4.6.5 WRITE_MEMORY_CARD"FF D0 00 [Bytes Address] [MEM_L] [Data]"

  • [Data] :要写入存储卡的数据

您使用P1 = 0x40 ,这可能是一个问题。