磁卡磁轨数据格式

磁卡磁轨数据格式


标准和概要

1)遵循标准ISO7811;
2)磁卡分成3个磁轨:A B C;
3)因为刷卡时的方向有两个, 所以数据也有正向和反向之分, 反向数据在解析时可以先按位颠倒,再按正向方式解析;
4)数据位序是低位在前,高位在后;
5)一般芯片读取的磁卡数据1和0相反的, 解析前需要取反(~);
6)常见的磁卡读取芯片有PA1100;

磁轨A

数据每7位为一个字符,最高位是奇校验位,有效数据6位;
//7位磁卡数据对应的字符
final static char[] CS7 =
" !'#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_".toCharArray();
以';'为起始符, '?'为结束符;

磁轨B和C

数据每5位为一个字符,最高位是奇校验位,有效数据4位;
//5位磁卡数据对应的字符
final static char[] CS5 = "0123456789:;<=>?".toCharArray();
以';'为起始符, '?'为结束符, '='为分隔符

银联卡B轨道数据格式
序号 名称 动态/静态 字段长度 备注
1 起始标志 静态 1 '分号'
2 主账号 静态 13-19  
3 字段分隔符 静态 1 '='
4 失效日期 静态 4 YYMM
5 服务代码 静态 3  
6 附加数据 静态 可变  
7 结束标志 静态 1 '问号'
8 纵向冗余校验位 静态 1 GB/T 15120.2


银联卡C轨道格式
序号 名称 动态/静态 字段长度 备注
1 起始标志 静态 1 “分号”
2 格式代码 静态 2 “99”
3 主账号 静态 13-19  
4 字段分隔符 静态 1 “=” 
5 国家代码 静态 3 “156” , 可选
6 货币代码 静态 3  
7 金额指数 静态 1  
8 周期授权量 静态 4 发卡行自定
9 本周期余额 动态 4  
10 周期开始日期 动态 4 Y动态动态动态
11 周期长度 静态 2  
12 密码重输次数 动态 1  
13 个人授权控制参数 动态 6 另行规定 
14 交换控制符 静态 1  
15 PAN的TA和SR 静态 2  
16 静态AN-1的TA和SR 静态 2  
17 静态AN-2的TA和SR 静态 2  
18 失效日期 静态 4 YYMM
19 卡序列号 静态 1  
20 卡保密号 动态 1  
21 静态AN-1 静态 最大12  
22 字段分隔符 静态 1 “=” 
23 静态AN-2 静态 最大12  
24 字段分隔符 静态 1 “=” 
25 传递标志 静态 1  
26 加密校验数 静态 6 另行规定
27 附加数据 动态 可变  
28 结束标志 静态 1 “问号” 
29 纵向冗余校验位 动态 1 GB/T 15120.2

参考

1.中国“银联”标识磁条卡磁道数据格式测试指南

你可能感兴趣的:(磁卡磁轨数据格式)