使用java smartcardio函数发送apdu命令以将数据写入智能卡读卡器

b4qexyjb  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(379)

我试图写数据到非接触式卡在hid万能5122设备使用java smartcardio功能。
我需要插入卡片的数据是 {00 01 02 03} .
我正在尝试通过通道发送apdu命令。传输功能为 {FF D6 00 04 04 00 01 02 03} 哪里:
ff为cls
d6是ins
00是p1
04是p2
04是要更新的字节数
00 01 02 03是我需要插入的数据。
我无法通过下面的函数正确构建apdu命令。有人能帮我吗。我正在使用java smartcardio库中提供的函数。

ResponseAPDU respApdu = channel.transmit(           
                          new CommandAPDU(0xFF,0xD6,0x00,0x04,0x04,
                                          new byte[] {(byte) 0x00, 
                                          (byte) 0x01, 
                                          (byte)0x02,
                                          (byte)0x03}));

我得到语法错误,像构造函数命令有无效的参数。

92vpleto

92vpleto1#

看起来您正在尝试发送更新二进制apdu来更新偏移量4处的透明文件(这是您在p1-p2中提供的)。必须使用cla字节00h(如果该文件操作不需要使用安全消息)。由于p1-p2在您的案例中没有指定短文件标识符,因此您当前选择的文件
与读取/更新二进制命令兼容
文件大小>=9字节。

相关问题