编程语言
首页 > 编程语言> > 使用java commandAPDU读取SLE4442智能卡中的写入数据?

使用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
但是没有一个数据在responseAPDU中接收
就像我写6262数据但它没有收到

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

select命令是

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

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

解决方法:

与存储卡相关的APDU命令对于不同的读者可能有所不同并且实现了支持.这是一个example for OmniKey reader.

查看ACR reader specification并使用特定的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 [字节地址] [MEM_L]”,其中

> [字节地址]:是存储卡的存储器地址位置
> [MEM_L]:从存储卡读取的数据长度

4.6.5 WRITE_MEMORY_CARD:“FF D0 00 [字节地址] [MEM_L] [数据]”

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

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

标签:apdu,smartcard,java
来源: https://codeday.me/bug/20191007/1868165.html