首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将apdu命令传递给命令apdu函数

如何将apdu命令传递给命令apdu函数
EN

Stack Overflow用户
提问于 2015-10-19 13:10:51
回答 1查看 3.6K关注 0票数 0

你好,我是java卡的新手,我有以下数据

代码语言:javascript
复制
CLA '00'
INS 'A2' nb not real value
P1  '00'
P2  '00'
LC  '08'
Data In 'EF08'
Le   '0D'

如何将上述指令写入字节并发送到此函数?我需要得到9000作为成功的回应和数据。

代码语言:javascript
复制
 ResponseAPDU respApdu = channel.transmit(
                                 new CommandAPDU(cmd));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-19 14:43:59

有多种方法可以做到这一点:

案例1: (不鼓励)

代码语言:javascript
复制
int cla = 0x00;
int ins = 0xA2;
int p1  = 0x00;
int p2  = 0x00;
//int LC  = 0x08;'
byte[] data = new byte[] {(byte) 0xEF, (byte) 0x08};
int le  = 0x0D;

ResponseAPDU respApdu = channel.transmit(
                             new CommandAPDU(cla, ins, p1, p2, data, le));

案例2: (鼓励)

代码语言:javascript
复制
byte[] apdu = new byte[] {(byte) 0x00, (byte) 0xA2, (byte) 0x00, (byte)
              0x00, (byte) 0x02, (byte) 0xEF, (byte) 0x08, (byte) 0x0D};

ResponseAPDU respApdu = channel.transmit(
                             new CommandAPDU(apdu));

阅读更多关于CommandAPDUCardChannel的信息。

案例3: (主要使用方式)

代码语言:javascript
复制
String apdu = "00A2000002EF080D"; //also u can append strings into apdu
ResponseAPDU respApdu = channel.transmit(
                             new CommandAPDU(toByteArray(apdu)));

您需要一个帮助函数:

代码语言:javascript
复制
import javax.xml.bind.DatatypeConverter;
public static byte[] toByteArray(String s) {
    return DatatypeConverter.parseHexBinary(s);
}

注意:--您展示的示例APDU值,LC '08'意味着数据将有8字节长,但是您的数据字段只有2字节长。所以再检查一下LC

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33215341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档