首先了解下电子钱包和电子存折的区别:
1、 电子钱包EP:electronic purse
2、 电子存折ED:electronic deposit
3、 电子钱包一般只支持圈存,消费交易,很少的电子钱包支持圈提。电子存折支持圈存,消费,圈提,修改透支限额等功能。
4、 电子钱包消费时无需提交个人PIN,而电子存折消费时必须提交个人PIN。
电子钱包功能简单(只支持圈存和消费),消费简便(不需提交PIN),因此在小额扩展应用中远远要比电子存折来的方便和快速。
一、 CPU卡发卡建立电子钱包命令
1、获取随机数
Send Data :0084000008(得到8个字节的随机数)
RSP[10]: 48 ED 2F 60 90 A4 C7 E2 90 00
2、对随机数进行3DES加密
加密数据:48 ED 2F 60 90 A4 C7 E2
加密密钥:FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF(CPU卡出厂外部认证密钥)
处理结果:D1 8E 49 7E BE 9C 28 50
3、外部认证
Send Data :0082000008 D18E497EBE9C2850(Data部分为前一步的DES处理的结果)
RSP[2]:9000
4、卡片擦除
Send Data :800E000000
RSP[2]: 90 00
5、建立密钥文件
Send Data :80E00000073F005001F0FFFF
RSP[2]:9000
指令说明:80(CLA)E0(INS)0000(P1P2文件标识)07(Lc)3F(文件类型)0050(文件空间)01(DF文件短标识符)F0(增加权限)FF(默认)FF(默认)
建立MF下面的密钥文件,DF文件短标识符为01
6、添加外部认证密钥
Send Data :80D401001539F0F0AA33FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
RSP[2]: 9000
指令说明:80(CLA)D4(INS)01(P1)00(P2密钥标识)15(Lc)39(密钥类型)F0(使用权)F0(更改权)AA(后续状态)33(错误计数器)FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF(密钥)
7、创建3F01目录
Send Data : 80 E0 3F 01 11 38036FF0F095FFFFA00000000386980701
RSP[2]: 90 00
3F01-文件标识ID
38-文件类型 DF
036F-文件空间
95-应用文件ID
A00000000386980701-DF名称
8、选择3F01目录
Send Data : 00 A4 00 00 02 3F 01
RSP[15]: 6F 0B 84 09 A0 00 00 00 03 86 98 07 01 90 00
9、创建密钥文件,位于3F01目录下面
Send Data : 80 E0 00 00 07 3F 01 8F 95 F0 FF FF
RSP[2]: 90 00
3F-密钥文件类型
018F-文件空间
95-DF短文件标识符号
10、装载密钥 到密钥文件
TAC密钥
Send Data : 80D401001534F002000134343434343434343434343434343434
RSP[2]: 90 00
外部认证密钥
Send Data : 80D401001539F002443339393939393939393939393939393939
RSP[2]: 90 00
消费密钥 密钥标识00
Send Data : 80D40100153EF00200013E013E013E013E013E013E013E013E01
RSP[2]: 90 00
圈存密钥密钥标识00 算法标识01
Send Data : 80D40100153FF00200013F013F013F013F013F013F013F013F01
RSP[2]: 90 00
圈提密钥密钥标识00
Send Data :80D40100153DF00201003D013D013D013D013D013D013D013D01
RSP[2]: 90 00
PIN密钥
Send Data : 80 D4 01 00 08 3AF0EF0133123456
Recv Data : 90 00
11、创建15号文件(二进制文件)
Send Data : 80 E0 00 15 07 280040F0F0FFFF
RSP[2]: 90 00
12、创建16号文件(二进制文件)
Send Data : 80 E0 00 16 07 280020F0F0FFFF
RSP[2]: 90 00
13、创建18号文件(循环文件)
Send Data : 80 E0 00 18 07 2E0A17F0EFFFFF
RSP[2]: 90 00
14、创建钱包文件(电子钱包)
Send Data : 80 E0 00 02 07 2F0208F000FF18
RSP[2]: 90 00
18为交易记录短标识,对应18号循环文件