4.操作卡片和OBU的指令以及流程

发布时间 2023-09-25 22:51:36作者: 流水江湖

 用户卡认证命令流

1、获取随机数:0084000004
 
2、进入1001目录:00A40000021001
 
3、读15文件:00B095002B
 
4、计算mac:00880201 + 10(1字节数据长度) + 16字节摘要码

操作IC卡片(读15文件,卡基本信息)

1、选1001:00A4 000002 1001
 
2、读15文件:00B095002B

操作IC卡片(写15文件,卡基本信息) 

1、选3F00:00A40000023F00
 
2、选1001目录:00A40000021001
 
3、取随机数:0084000004(04代表去4字节随机数) 
 
4、写15文件:"04D69500"+len+data+Mac2 
 
        04D6:写文件命令头
 
        95:文件短文件标识符
 
        00:起始地址
 
        len:后面数据长度(data+mac的长度)
    
        data:写入数据内容
 
        Mac2:
 
注:Mac2的计算:调用getMAC2()方法计算 --- Mac的计算和数据的加密的方法都在DesMac

操作IC卡片(读16文件,持卡人信息) 

1、选3F00:00A40000023F00
 
2、读16文件:00B0960037

操作IC卡片(写16文件,持卡人信息)

1、选3F00:00A40000023F00
 
2、取随机数:0084000004(04代表去4字节随机数) 
 
3、写16文件:"04D69600"+len+data+Mac
 
        04D6:写文件命令头
 
        96:文件短文件标识符
 
        00:起始地址
 
        len:后面数据长度(data+mac的长度)
 
        data:写入数据内容
    
        Mac:4字节
 
注:Mac2的计算:调用getMAC2()方法计算。

操作IC卡片(圈存)

1、选1001:00A40000021001
 
2、读15文件:00B095002B
 
3、验PIN码:00200000+PIN码的len+PIN码 (例如:002000000388888800200000063132333435364、圈存初始化(获取MAC1):805000+交易类型("01""02")+0B(后面数据长度)+秘钥索引(1字节)
                        +交易金额(4字节)+终端机编号(6字节)
 
    交易类型:ED:电子存折(01)
 
             EP:电子钱包(02)
 
    圈存初始化响应报文如表30
 
5、计算MAC2(4字节):调用CalCreditForLoadCheckMac1AndMac2()方法计算MAC2
 
6、圈存写卡:805200000B+交易日期(4字节)+交易时间(3字节)+MAC2(4字节)

操作IC卡片(消费)

1、选1001:00A40000021001
 
2、读15文件: 00B095002B
 
3、读19文件:00B201CC2B
 
4、消费初始化:805001+交易类型("01""02")+0B(后面数据长度)+秘钥索引(1字节)
                +交易金额(4字节)+终端机编号(6字节)
 
    交易类型:ED:电子存折(01)
 
             EP:电子钱包(02)
 
    消费初始化响应报文如表34
 
5、计算MAC2(4字节):调用CalConsumptionForLoadCheckMac1AndMac2()方法计算MAC1
 
6、消费写卡:805401000F+终端交易序号(4字节)+交易日期(4字节)+交易时间(3字节)+MAC1(4字节)

操作IC卡片(读18文件,终端交易记录文件)

1、选1001:00A40000021001
 
2、验PIN:00200000+PIN码的len+PIN码 (例如 00200000038888883、读18文件的第一条:00B201C417

操作IC卡片读(19文件,复合消费文件)

1、选1001:00A40000021001
 
2、读19文件的第一条:00B201CC2B

操作IC卡片(读余额)

1、选1001:00A40000021001
 
2、读余额:805C000204

操作OBU(读系统该信息)

1、选3F00:00A40000023F00
 
2、读EF01文件:00B081001B --- 返回27字节系统信息

操作OBU(写OBU的系统信息)

1、选3F00:00A40000023F00
 
2、读 EF01文件:00B081001B --- 返回27字节系统信息
 
3、取随机数:0084000004(04代表去4字节随机数) 
 
4、写OBU的系统信息文件:04D681120D+9字节系统信息+4字节Mac
 
        eg:04D681120D + 202101212031012101 + 33DCB68D
 
        04D6:写文件命令头
 
        81:文件短文件标识符
 
        12:偏移量(10进制的18)
 
        0D:后面数据长度
 
注:4字节MAC的计算:调用getMAC2()方法计算,或者使用psam发送指令计算

操作OBU(读OBU车辆信息)

1、选3F00:00A40000023F00
 
2、读EF01文件:00B081001B --- 返回27字节系统信息
 
3、选DF01目录:00A4000002DF01
 
4、取随机数:0084000008(08代表取8字节随机数) 
 
5、读车辆信息:00B400000A+8字节随机数+3B(读取车辆文件长度=59字节) +00(密钥版本:00--非国密,41--国密)
    
   注:返回读车辆信息文件是密文
 
6、调用“解密OBU车辆信息接口”将密文传给后台解密即可

操作OBU(写OBU车辆信息)

1、选3F00:00A40000023F00
 
2、读EF01文件:00B081001B --- 返回27字节系统信息
 
3、选DF01目录:00A4000002DF01
 
4、取随机数:0084000004(04代表取4字节随机数) 
 
5、写OBU的车辆信息文件:04D681003F + 59字节车辆信息 + 4字节Mac
 
eg:04D681003F + BEA94A4C39353237000000000000010100140F0F040203E8000004000000000000000000000000000000010000000000000000000000000000000B + A50E2242
 
        04D6:写文件命令头
    
        81:文件短文件标识符
 
        00:起始地址
 
        3F:后面数据长度
 
注:4字节MAC的计算:调用getMAC2()方法计算

操作OBU(激活OBU)

1、选3F00:00A40000023F00。
 
2、读EF01文件:00B081001B --- 返回27字节系统信息
 
3、取随机数:0084000004(04代表去4字节随机数,随机数即广西接口中的初始化向量)
 
4调用getMAC2()方法
 
5、写OBU:04D6811A05+01系统信息的第27字节为拆卸状态:01-已激活,00-未激活)+4字节Mac
 
        04D6:写文件命令头
 
        81:文件短文件标识符,标识EF01文件
 
        1A:起始地址,也可以叫偏移长度1A=26,也就是从第27字节开始写
 
        05:后面数据长度

操作PSAM卡(PSAM卡认证命令流)

1选DF02目录:00A4000002DF02
 
2、秘钥分散:801A280208 + 8字节卡序列号
 
3、计算mac:80FA0500 + 20(1字节数据长度) + 0000000000000000 + 16字节摘要码 + 8000000000000000
    
    注:数据长度必须是8的倍数