数据分组的设计在个人化过程中承担着重要的作用。数据分组标识符(DGI)是两字节十六进制数。数据分组标识的第一个字节等于‘01’到‘1E’,表明数据存储的SFI。第二个字节表明SFI记录的记录编号。其他那些第一个字节在此范围之外的所有数据分组标识都用于索引并不存储于SFI的数据,它们在《EMV卡个人化规范:2003》中定义,为EMV、支付系统和发卡行所用。
中国金融集成电路(IC)卡借记/贷记应用对于该约定的例外情况包括数据分组标识的‘0D01’和‘0E01’。这些数据分组标识中的数据,使用READRECORD命令或UPDATERECORD命令是无法访问的。根据具体实现的不同,卡片可能把数据元存储于这些数据分组标识中作为记录,也可能不存储。
用于脱机数据认证的记录数据是标识为‘70’的TLV编码格式,对于文件的SFI分别在‘1-10’和‘11-30’的这两类文件,在脱机数据认证处理过程中的数据处理不同。任何成功的读记录(READ RECORD)命令的响应报文的数据域都包含读出的记录值。对于在1-10范围内的SFI,这个记录是一个BER-TLV结构数据对象。
‘70’ |
长度 |
记录模板 |
目前金融领域最多的是基于《模板 12—借记卡+电子现金+非接触式IC卡支付》.
注意事项:为降低“闪卡”概率,个人化系统的数据组织,DGI最后一条记录的70模板的长度应不超过32字节(同时确保终端读取的最后一条记录的70模板的长度应不超过32字节)
1) Tag标签编码规则
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
00:通用类标签 01:应用类标签 |
0:基本数据对象 1:结构数据对象 |
11111表示标签存在第二字节,否则只有一个字节 |
例:93与9F14,对于93其二进制表示为:1001 0011,b4-b0不全为1,则该标签不存在第二字节,对于9F其二进制表示为:1001 1111,b4-b0为11111,则该标签存在第二字节
2) Length编码规则
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
0 |
当前只有一个字节表示长度值,最大表示127字节 |
||||||
1 |
当前有大于一个字节表示长度值,表示接下来还有多少字节表示长度 |
例:81(10000001), b7=1,表示当前有大于一个字节表示长度,b6-b1=1代表后续还有一个字节的长度,两个字节最大可以表示255字节。
文/闫鑫原创
转载请注明出处http://blog.csdn.net/yxstars/article/details/38229605