一、基本介绍

  磁条卡是以液体磁性材料或磁条为信息载体,将液体磁性材料涂覆在卡片上(如存折),或将宽约614mm的磁条压贴在卡片上(如常见的银联卡)。
  磁卡上的3个磁道一般都是使用"位"(bit)方式来编码的,根据数据所在的磁道不同,由5个bit或7个bit组成一个字节,每个字节最高位为奇偶校验位,国标GB15120中规定磁卡采用奇校验,即保证每个字节中的"1"的个数为奇数个。磁卡数据中的起始、结束和纵向冗余校验字节本身都有奇偶校验。(奇偶校验与磁道数据解析无关,与刷卡器读磁条卡相关)

二、磁条卡分类

磁条卡按技术可以分为以下两类:

  • 高抗磁卡:具有较高的抗消磁性,适用于安全性较高的场合如信用卡及ID卡等。高抗磁条一般为2750,3500和4000 OE(奥斯特),三个磁道皆可写入。
  • 低抗磁卡:使用普通抗消磁性磁条,主要用于门票、会员卡及其它普通场合。低抗磁条一般为300和650 OE(奥斯特),只能写入二磁道,一和三磁道无法写入。

备注1:抗磁简单讲,是用来衡量磁条抵抗因受外界磁场影响而造成数据损失的能力,又称抗消磁性。
备注2:低抗磁条卡刷卡机只支持低抗磁卡,高抗磁条卡刷卡机则兼容两者。
备注3:通常,低抗磁条刷卡机无法读取一磁道数据。

三、磁卡使用规范

  所有银行磁条卡必须使用第2磁道。第3磁道是否使用由各发卡行自行规定。第1磁道暂不使用,保留将来酌情使用。
  金融模块进行处理时,必须同时读入并上送第2、3磁道信息。第2磁道作为交换磁道,各银行在进行识别和信息交换时以第2磁道为准。

四、磁道数据格式说明

1、第一磁道

(1) 简单介绍
  第1磁道数据编码最大记录长度为79个字符,可记录数字(0-9)、字母(A-Z)和其他一些符号(如括号、分隔符等)。第1磁道为只读磁道。一般记录了磁卡的使用类型、范围等一些标记性、说明性的信息。例如银行用卡中,第1磁道记录了用户的姓名,卡的有效使用期限以及其他的一些标记信息。

(2) 数据格式说明

序号 字段 动态(D)/静态(S) 字段长度 备注
1 起始标志 S 1 标明数据开始,为"%"
2 格式代码 S 2 标明数据格式类型,为"99"
3 主账号 S 13~19 标明可处理交易的发卡行和持卡者
4 字段分隔符 S 1 标明前一字段的结束,为"^"
5 姓名 S 2~26 标明持卡者的姓氏、名字、称谓等
6 字段分隔符 S 1 “^”
7 失效日期 S 4 表示卡失效的日期
8 服务代码 S 3 标明银行卡可使用的服务类型
9 附加数据 S 可变 容纳对发卡行有意义的任意数据
10 结束标志 S 1 标明磁道上有意义数据的结束,为"?"
11 纵向冗余校验位 S 1 用于数据校验

2、第二磁道

(1) 简单介绍
  第2磁道数据编码最大记录长度为40个字符,只可记录数字(0-9)。第2磁道为只读磁道。一般用以记录用户的帐户信息、款项信息等等,当然还有一些银行所要求的特殊信息等。

(2) 数据格式说明

序号 字段 动态(D)/静态(S) 字段长度 备注
1 起始标志 S 1 标明数据开始,为";"
2 主账号 S 13~19 标明可处理交易的发卡行和持卡者
3 字段分隔符 S 1 标明前一字段的结束,为"="
4 失效日期 S 4 表示卡失效的日期
5 服务代码 S 3 标明银行卡可使用的服务类型
6 附加数据 S 可变 容纳对发卡行有意义的任意数据
7 结束标志 S 1 标明磁道上有意义数据的结束,为"?"
8 纵向冗余校验位 S 1 用于数据校验

3、第三磁道

(1) 简单介绍
  第3磁道数据编码最大记录长度为107个字符,只可记录数字(0-9)。第3磁道为读写磁道。一般用以记录用户的帐户信息、款项信息等等,当然还有一些银行所要求的特殊信息等。

(2) 数据格式说明

序号 字段 动态(D)/静态(S) 字段长度 备注
1 起始标志 S 1 标明数据开始,为";"
2 格式代码 S 2 标明数据格式类型,为"99"
3 主账号 S 13~19 标明可处理交易的发卡行和持卡者
4 字段分隔符 S 1 标明前一字段的结束,为"="
5 国家代码 S 3 标明可以处理由银行卡产生交易的国家,为"156"
6 货币代码 S 3 标明结算时使用的货币类型:3位数字
7 金额指数 S 1 决定周期授权量与本周期余额两字段的基值
8 周期授权量 S 4 表示在一个周期内累积交易不能超过的金额,由发卡机构自定授权量
9 本周期余额 D 4 当前周期内的可用金额
10 周期开始日期 D 4 YDDD形式的4位数字,其中Y表示年度最后一个有效字符,DDD表示年度内天数的顺序号,其范围为001-366
11 周期长度 S 2 表示所有交易的累积值不能超过授权量的时间期限
12 密码重输次数 D 1 记录允许未成功输入密码的次数
13 个人授权控制参数 D 6 提供一种可选择的安全性能
14 交换控制符 S 1 标明银行卡适用于交换的范围
15 PAN的TA和SR S 2 定义主账号(PAN)的账户类型和可提供的服务
16 SAN-1的TA和SR S 2 定义第一辅助账号(SAN-1)的账户类型和可提供的服务
17 SAN-2的TA和SR S 2 定义第二辅助账号(SAN-2)的账户类型和可提供的服务
18 失效日期 S 4 表示卡失效的日期
19 卡序列号 S 1 区别具有相同主账号(PAN)的卡,由发卡机构定义,在最初发卡或卡失效后换卡时赋值。
20 卡保密号 D 1 字段分隔符(FS),用于建立磁条所含数据与物理卡的联系
21 SAN-1 S 最大12 标明第一个可选用的辅助账号
22 字段分隔符 S 1 “=”
23 SAN-2 S 最大12 标明第二个可选用的辅助账户
24 字段分隔符 S 1 “=”
25 传递标志 S 1 表明交换信息是否包含附加数据的内容
26 加密校验数 S 6 通过使用加密公式提供一种校验该磁道上数据完整性的方法。
27 附加数据 D 可变 容纳对发卡行有意义的任意数据
28 结束标志 S 1 “?”
29 纵向冗余校验位 D 1 用于数据校验

五、具体字段说明

1、起始标志(STX)

用途:标明数据的开始。
格式:1个字符。
内容:第1磁道为"%",第2、3磁道为";"。

2、格式代码(FC)

用途:标明该磁道的数据格式类型。
格式:2位数字。
内容:“99”。

3、主账号(PAN)

用途:标明可以处理交易的发卡行和持卡人。
格式:13至19个字符。
内容:由发卡行标识代码、自定义位和校验位组成,其中发卡行标识代码(BIN)由6位数字表示,第一位固定为"9",后5位由BIN注册管理机构分配;自定义为由6-12位数字组成;校验位根据校验位前的数字计算得到,通过模10"隔位乘2加"校验数算法计算得到,详见附录1 JRT 0008-2000 银行卡发卡行标识代码及卡号。

4、字段分隔符(FS)

用途:标明前一字段的结束。
格式:1个字符。
内容:第1磁道为"^",第2、3磁道为"="。

5、姓名(NM)

用途:标明持卡者的姓氏、名字、称谓等。
格式:2至26个字符。
内容:由姓氏、姓氏分隔符、名字或首写字母、分隔符(如需要时)、中间名或首写字母、结尾圆点(当其后为称谓时)、称谓组成。最小编码数据应为一个字母字符(如姓氏)加上姓氏分隔符。

6、失效日期(ED)

用途:表示卡失效的日期。
格式:YYMM形式的4位数字,其中YY表示卡失效年度的后2个字符;MM表示年度内月份的顺序号,规定在该月份的最后一天后,卡失效。当YYMM为0000时,表示该卡无失效日期。

7、服务代码(SC)

用途:标明银行卡可使用的服务类型。
格式:3位数字,其中第一位为交换控制符。
内容:交换控制符可在2-9间选用,服务代码的后两位在下列区域中分配:00-49由国际标准化组织分配和发布;50-59由国内标准化相关组织分配和发布;60-99由发卡行酌情使用。目前后两位已分配的服务代码如下图:

8、附加数据

用途:容纳对银行卡发行者有意义的任意数据。
格式:可变。但应保证该磁道字符总数不得超过最大编码长度。
内容:具体内容由发卡行自定。

9、结束标记(ETX)

用途:标明磁道上有意义数据的结束。
格式:1位字符。
内容:"?"。

10、纵向冗余校验符(LRC)

用途:用于对磁道数据进行校验。
格式:1个字符。
内容:LRC字符中的每一位(不包括奇偶校验位)的值,使磁道上所有字符相应位位置上的编码为"1"的总数(包括起始符、数据、结束符和LRC字符)为偶数。详见附录2 GB/T15120.2-2012与附录5 lrc检验的java实现。

11、国家代码

用途:标明可以处理由银行卡产生交易的国家。
格式:3位数字。
内容:“156”(见GB/T/ 2659)。

12、货币代码

用途:标明结算时使用的货币类型。
格式:3位数字。
内容:见GB/T 12406。

13、金额指数

用途:决定周期授权量与本周期余额两字段的基值。
格式:1位数字。
内容:表示周期授权量与本周期余额两字段必须乘以10的一个幂指数的值,以此表示货币金额。

14、周期授权量

用途:表示在一个周期内累积交易不能超过的金额。
格式:4位数字。
内容:由发卡行自定授权量。

15、本周期余额

用途:表示当前周期内的可用金额。
格式:4位数字。
内容:在新的周期开始时,该字段等于周期授权量,消费后逐次递减,余额存本字段。

16、周期开始日期

用途:表示一个新周期开始的日期。
格式:YDDD形式的4位数字,其中Y表示年度最后一个有效字符,DDD表示年度内天数的顺序号,其范围为001-366。

17、周期长度

用途:表示所有交易的累积值不能超过授权量的时间期限。
格式:2位数字。
内容:如下图

18、密码重输次数

用途:记录允许未成功输入密码的次数。
格式:1位数字。
内容:该字段在发卡和正确输入密码时被赋初值,初值由各发卡行自定义;当输入密码不正确时该字段减1。

19、个人标识代码控制参数(PINPARM)

用途:提供一种可选择的安全性能。
格式:6位数字。
内容:保密算法由各发卡行自定。

20、交换控制符

用途:标明银行卡适用于交换的范围。
格式:1位数字。
内容:如下图

21、主账号的账户类型(TA)和服务约束(SR)

用途:定义主账号(PAN)的账户类型和可提供的服务。
格式:2位数字。
内容:第1位数字为账户类型,其中

0–主账号(PAN)未在第3磁道上编码
1–储蓄账户
2–现金或支票账户
3–信用卡账户
4–适用于多种账户类型的通用账户
5–付息现金或支票账户
6~8–保留待分配
9–发卡行内部使用,但不能交换

第2位数字为服务约束,其中

0–无约束
1–无现金服务
2–无销售点(POS)服务
3–无现金和销售点(POS)服务
4–要求肯定的授权
5~7–保留待分配
8~9–发卡行内部使用

22、第一辅助账号的账户类型和服务约束

用途:同【21】的定义一致,但此字段内容涉及第一辅助账号(SAN-1)中包含的账号。
格式:2位数字。
内容:同【21】。

23、第二辅助账号的账户类型和服务约束

用途:同【21】的定义一致,但此字段内容涉及第二辅助账号(SAN-2)中包含的账号。
格式:2位数字。
内容:同【21】。

24、卡序列号

用途:区别具有相同主账号(PAN)的卡(同时或连续发行)。
格式:1位数字。
内容:由发卡行定义,在最初发卡或卡失效后换卡时赋值。每次增加卡或发新卡时,该字段加1。

25、卡保密号

用途:用于建立磁条所含数据与物理卡的联系。
格式:字段分隔符(FS)。
内容:FS–表示卡保密号字段不在第3磁道上编码。

26、第一辅助账号(SAN-1)

用途:标明第一个可选用的辅助账号。
格式:最大12个字符。
内容:由发卡机构酌情使用。长度为0时,表示不使用第一辅助账号。

27、第二辅助账号(SAN-2)

用途:标明第二个可选用的辅助账号。
格式:最大12个字符。
内容:由发卡机构酌情使用。长度为0时,表示不使用第二辅助账号。

28、传递标志

用途:提供可减少传送交换信息长度的功能。它表明交换信息是否包含附加数据的内容。
格式:1个字符。
内容:0表示包括所有附加数据;1表示不包括附加数据;2~9无效。

29、加密校验数(CCD)

用途:通过使用加密公式提供一种校验该磁道数据上数据完整性的方法。
格式:6个字符。
内容:加密方法由各发卡行自定。

六、磁道数据解析例子

1、第2磁道

例子:

62285600000000276=0000520260408650000

根据第2磁道数据格式,可将上述数据分解成:

(主账号=62285600000000276)
(=)
(失效日期=0000)此卡无失效日期
(服务代码=520)国内使用,必须获得发卡行或发卡行代理的联机授权,服务领域无限制,要求输入PIN。
(附加数据=260408650000)

2、第3磁道

例子:

9962285600000000276=1561560500050000000013341865514000000001=00000000273=000000018=000000026040100018

根据第3磁道数据格式,可将上述数据分解成:

(格式代码=99)
(主账号=62285600000000276)
(=)
(国家代码=156)中国
(货币代码=156)CNY-人民币元
(金额指数=0)
(周期授权量=5000)
(本周期余额=5000)
(周期开始日期=0000)
(周期长度=01)1天
(密码重输次数=3)
(个人授权控制参数=341865)
(交换控制符=5)限制在国内系统内交换
(PAN的TA和SR=14)储蓄账户,需要肯定的授权
(SAN-1的TA和SR=00)无编码
(SAN-1的TA和SR=00)无编码
(失效日期=0000)无失效日期
(卡序列号=1)
(卡保密号为=)
(SAN-1=00000000273)
(=)
(SAN-2=000000018)
(=)
(传递标志=0)包括所有附加信息
(加密校验数=000000)
(附加数据=26040100018)

附录

  1. JRT 0008-2000 银行卡发卡行标识代码及卡号
  2. GB/T15120.2-2012
  3. 关于磁卡的基本常识
  4. 磁条磁道信息
  5. lrc检验的java实现
  6. 中国银联标识磁条卡磁道数据格式测试指南

磁条卡知识学习与数据解析相关推荐

  1. Python学习 Day43 数据解析-BeautifulSoup 07

    BeautifulSoup 解析数据 一.BeautifulSoup概述 1.BeautifulSoup 是一个可以从HTML或XML文档中提取数据的Python库 功能简单强大.容错能力高.文档相对 ...

  2. linux下json数据解析,JSON数据解析 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...

    在之前的<iOS学习--xml数据解析(九)>http://www.linuxidc.com/Linux/2014-02/97020p9.htm 介绍了xml数据解析,这一篇简单介绍一下J ...

  3. 【大数据】学习大数据前需要掌握的知识

    一谈到大数据技术,很多人首先想到的是数学,大概是因为数字在数学体系中稳固的位置吧,这也是理所当然的.大数据时代已经被抄的很热了,这个行业目前已经逐渐成熟,想学习大数据开发的人越来越多.每天我们在互联网 ...

  4. IC卡与磁条卡的数据区别

    银联交易中IC卡和磁条卡在数据组装中的区别 1:IC卡必须要有IC卡数据域[55域] 2:服务点输入方式码[以含PIN为例]:IC卡默认为051,磁条卡默认为021[22域] 3:IC卡有IC卡条件码 ...

  5. 大数据入门培训之大数据开发基础知识学习

    在目前相信大多数IT开发人员对于人工智能+大数据并不陌生,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求.因此对大数据知识也有必要进行一些学习理解,带大家来学习了解一下 ...

  6. 学习大数据技术,需要具备哪些【数学知识】?你了解了吗?

    谈起大数据技术,很多人都觉得是高大上的一门技术,学起来应该是困难重重!其实对于大数据技术而言,难的不是大数据技术本身,而是需要太多的基础知识,比如说:数学知识.英语能力.编程基础等等. 数学,我们从小 ...

  7. 想学习大数据要掌握些什么知识?

    从前几年到现在所谓的大数据时代,移动互联网.物联网.云计算.人工智能.机器人.大数据等前沿信息技术领域,逐个火了一遍,什么是大数据,大数据的技术范畴包括那些,估计很多人都是根据自己所熟悉的领域在盲人摸 ...

  8. 学习大数据的第23天——Set集合的小练习以及Map相关的知识

    学习大数据的第23天--Set集合的小练习以及Map相关的知识 Set的小练习 HashSet集合存储自定义对象并遍历. 如果对象的成员变量值相同即为同一个对象 //创建集合对象 HashSet< ...

  9. python爬虫学习笔记-网络爬虫的三种数据解析方式

    爬虫的分类 1.通用爬虫:通用爬虫是搜索引擎(Baidu.Google.Yahoo等)"抓取系统"的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份 ...

  10. Android学习之JSON数据解析

    在Android应用开发中,常用的数据交换格式有XML和JSON,这两种方式各有各的好处,我们在特定的应用开发中可以选择合适的一种.下面来看一下JOSN数据解析: 例子永远是最好的教程,下面我们来看个 ...

最新文章

  1. linux定时任务crontab 时间,shell后台定时任务时crontab的用法
  2. 为什么我们批评C++?又爱又恨的垃圾回收机制
  3. boost::sort模块实现带有右移函子排序示例的整数排序的测试程序
  4. 第3章 Python的数据结构、函数和文件
  5. 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载
  6. python scikit learn 关闭开源_慕课|Python调用scikit-learn实现机器学习(一)
  7. [K/3Cloud] 调用其他界面时通过Session传递对象参数
  8. 开放域文本分类技术思考
  9. OpenVz Centos4 Oracle 10g VE
  10. 《别闹了,费曼先生》
  11. imatest白平衡测试结果解析
  12. mysql查看表被哪个进程锁住_查询mysql 哪些表正在被锁状态
  13. 趣图:五彩斑斓的黑,找到了
  14. 用python写一个躲避球十分简单的小游戏
  15. 网站可行性报告范文_嵩县写可行性研究报告项目报告范文
  16. 监控显示登录服务器超时,监控连接服务器超时怎么解决
  17. 【180928】BlackJack游戏源码
  18. 基于YOLOV3实现交通标志识别(Pytorch实现)
  19. 计算机英语教程第五版答案解析,计算机专业英语教程(第5版)翻译完整版
  20. 4.数据分析-Pandas_①

热门文章

  1. 最好用的开源免费笔记软件IdeaNote
  2. 短信验证码平台哪家速度快又稳定,推荐下?
  3. 颠覆思维,你也能懂量子力学
  4. 固态硬盘是什么接口_PCI-E接口的固态硬盘和SATA接口的有什么区别?
  5. 3D点云目标检测算法综述
  6. 使用gca警告: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4.
  7. MRCP协议学习笔记
  8. es自建搜索词库_ES——中文分词以及词库扩展
  9. fmodex.dll已加载,但找不到入口点怎么解决?
  10. elasticsearch源码:unicast列表解析