磁卡结构【转】
本文转载自:https://blog.csdn.net/ljuncong/article/details/1793115
磁卡的ISO标准
磁卡,特别是应用于银行系统的磁卡的一些ISO 标准分别为:ISO7810,ISO7811-1 至ISO7811-6,ISO7812,ISO7813 以及ISO15457 等等。其中:
ISO7810 标准:制定了磁卡的物理特性等;
ISO7812 标准:制定了磁卡的记录技术标准;
ISO781-4 标准:制定了磁卡上只读的Track1 和Track2 的记录技术标准;
ISO781-5 标准:制定了磁卡上可读/写的Track3 的记录技术标准;
ISO15457 标准:制订了磁卡物理标准/测试方式Track 标准F/2F 技术标准;
磁卡的物理结构及数据结构
一般而言,应用于银行系统的磁卡上的磁带有3 个磁道,分别为Track1,Track2 及Track3。每个Track都记录着不同的信息,这些信息有着不同的应用。此外,也有一些应用系统的磁卡只使用了两个磁道(Track),甚至只有一个Track。在我们所设计的应用系统中,根据具体情况,可以使用全部的三个Track或是二个或一个Track。
如上图所示是符合ANSI 及ISO/IEC 标准的磁卡的物理尺寸定义。这些尺寸的定义涉及磁卡读写机具的标准化。因为如果您对磁卡上Track1(或Track2 或Track3)进行数据编码时,其数据在磁带上的物理位置偏高或偏低了哪怕几个毫米,则这些已编码的数据信息偏移到了另外的Track 上了。其中:
Track1,2,3 的每个磁道宽度相同,大约在2.80mm(0.11 英寸)左右,用于存放用户的数据信息;相邻两个Track 约有0.05mm (0.02 英寸)的间隙(Gap),用于区分相邻的两个磁道;整个磁带宽度在10.29毫米(0.405)左右(如果是应用3 个Track 的磁卡),或是在6.35 毫米(0.25 英寸)左右(如果是应用2 个Track 的磁卡)。实际上我们所接触看到的银行磁卡上的磁带宽度会加宽1~2mm 左右,磁带总宽度在12~13mm 之间。
在磁带上,记录3 个有效磁道数据的起始数据位置和终结数据位置不是在磁带的边缘,而是在磁带边缘向内缩减约7.44mm(0.293 英寸时)为起始数据位置(引导0 区);在磁带边缘向内缩减约6.93mm(0.273英寸)为终止数据位置(尾随0 区);这些标准是为了有效保护磁卡上的数据不易被丢失。因为磁卡边缘上的磁记录数据很容易因物理磨损而被破坏。
磁道Track 上的标准定义
磁道Track 的应用分配一般是根据特殊的使用要求而定制的,比如银行系统、证券系统、门禁控制系统、身份识别系统、驾驶员驾驶执照管理系统等等,都会对磁卡上的磁卡上的3 个Track 提出不同的应用格式要求提出不同的应用格式要求。在此,我们将主要研讨的是符合国际流通的银行/财政应用系统的银行磁卡上的3 个Track 的标准定义,这些定义也已经广泛适用于Visa 信用卡、MasterCard 信用卡等我们常用的一些银行卡。
●磁道Track1:它的数据标准制定最初是由“国际航空运输协会”IATA(International Air Transportation Association)完成的。Track1 上的数据和字母记录了航空运输中的自动化信息,例如货物标签信息、交易信息、机票定票/定座情况,等等。这些信息由专门的磁卡读写机具进行数据读写处理,并且在航空公司中有一套应用系统为此服务。应用系统包含了一个数据库,所有这些磁卡的数据信息都可以在此找到记录。
●磁道Track2:它的数据标准制定最初是由“美国银行家协会”ABA(American Bankers Association)完成的。该磁道上的信息已经被当今很多的银行系统所采用。它包含了一些最基本的相关信息,例如卡的惟一识别号码、卡的有效期等。
●磁道Track3:它的数据标准制定最初是由财政行业(THRIFT)完成的。其主要应用于一般的储蓄、货款和信用单位等那些需要经常对磁卡数据进行更改、重写的场合。典型的应用包括现金售货机、预付费卡(系统)、借贷卡(系统)等等。这一类的应用很多都是处于“脱机"(off line)的模式,即银行(验证)系统很难实时对磁卡上的数据进行跟踪,表现为用户卡上磁道上Track3 的数据与银行(验证)系统所记录的当前数据不同。
磁道(Track1,Track2,Track3)上允许使用的数字和字符
磁卡上的3 个Track 一般都是使用“位”(bit)方式来编码的。根据数据所在的Track 不同,5 个bit或7 个bit 组成一个字节。Track1(IATA):记录密度为210BPI;可以记录0~9 数字及A~Z 字母等;总共可以记录多达79 个数字或字符(包含起始结束符和校验符);每个字符(一个字节)由7 个bit 组成。
由于Track1 上的信息不仅可以用数字0~9 来表示,还能用字母A~Z 来表示信息,因此Track1 上信息一般记录了磁卡的使用类型、范围等一些“标记”性、“说明”性的信息。例如银行用卡中,Track1 记录了用户的姓名,卡的有效使用期限以及其他的一些“标记”信息。
Track2(ABA):记录密度为75BPI;可以记录0~9 数字,不能记录A~Z 字符;总共可以记录多达40个数字(包含起始结束符和校验符);每个数据(一个字节)由5 个bit 组成。
Track3(THRIFT):记录密度为210BPI;可以记录0~9 数字,不能记录A~Z 字母;总共可以记录多达107 个数字或字符(包含起始结束符和校验符);每个字符(一个字节)由5 个bit 组成。
由于Track2 和3 上的信息只能用数字0~9 等来表示,不能用字母A~Z 来表示信息,因此在银行用卡中,Track2,3 一般用以记录用户的帐户信息、款项信息等等,当然还有一些银行所要求的特殊信息等。
在实际的应用开发中,如果我们希望在Track2 或3 中表示数字以外的信息,例如“ABC”等,一般应采用按照国际标准的ASCII 表来映射。例如,要记录字母“A”在Track2 或3 上时,则可以用“A”的ASCII值“0x41”来表示。“0x41”可以在Track2 或是Track3 中用两个数据来表示:“4”和“1”,即“0101”和“0001”。