• 境内银行卡磁条信息格式


    第1磁道的数据内容
    第1磁道数据编码最大记录长度为79个字符,数据字段的顺序和长度应与表1给出的第1磁道数据格式一致。
    第1磁道为只读磁道。
     
    第2磁道的数据内容
    第2磁道数据编码最大记录长度为40个字符,数据字段的顺序和长度应与表2给出的第2磁道数据格式一致。
    第2磁道为只读磁道。
     
    第3磁道的数据内容
    第3磁道数据编码最大记录长度为107个字符,数据字段的顺序和长度应与表B.1给出的第3磁道数据格式一致
    第3磁道为读写磁道。
    字段说明
    6.1 起始标志(STX)
    用途:标明数据的开始。
    格式:1个字符。
    内容:第1磁道为“%”,第2磁道和第3磁道为“;”。
    6.2 格式代码(FC)
    用途:标明该磁道的数据格式类型。
    格式:第1磁道为1个字符,第3磁道为2位数字。
    内容:第1磁道为“B”,第3磁道为“99”。
    6.3 主账号(PAN)
    用途:标明可以处理交易的发卡机构和持卡者。
    格式:13至19位数字。
    内容:校验数算法见GB/T 14504。
    6.4 字段分隔符(FS)
    用途:标明前一字段的结束。
    格式:1个字符。
    内容:第1磁道为“∧”,第2磁道和第3磁道为“=”。
    6.5 姓名(NM)
    用途:标明持卡者的姓氏、名字、称谓等。
    格式:2至26个字符。
    内容:由姓氏、姓氏分隔符、名字或首写字母、分隔符(如需要时)、中间名或首写字母、结尾圆点(当其后为称谓时)、称谓组成。最小编码数据应为一个字母字符(如姓氏)加上姓氏分隔符。
    6.6 失效日期(ED)
    用途:表示卡失效的日期。
    格式:YYMM形式的4位数字,其中:
    YY——卡失效年度的后2个字符。
    MM——年度内月份的顺序号。规定在该月份的最后一天后,卡失效。
    当YYMM为0000时,表示此卡无失效日期。
    6.7 服务代码(SC)
    用途:标明银行卡可使用的服务类型。
    格式:3位数字。
    内容:第1位:
    1——国际使用。
    2——国际使用—指明卡片有集成电路芯片,如集成电路芯片可以使用,金融交易应由集成电路处理。
    5——国内使用。
    6——国内使用—指明卡片有集成电路芯片,如集成电路芯片可以使用,金融交易应由集成电路处理。
    7——专用-不用于交换。
    9——测试。
    第2位:
    0——普通授权。
    2——必须获得发卡行或发卡行代理的联机授权。
    4——除非另有双方协议明确规定,必须获得发卡行或发卡行代理的联机授权。
    第3位:
    0——服务领域无限制,要求输入PIN。
    1——服务领域无限制。
    2——仅用于商品和服务。
    3——仅用于ATM,要求输入PIN。
    4——仅现金。
    5——仅用于商品和服务,要求输入PIN。
    6——服务领域无限制,当有密码键盘时,提示输入PIN。
    7——仅用于商品和服务。当有密码键盘时,提示输入PIN。
    6.8 附加数据
    用途:存放卡片验证码(CVN)及对发卡机构有意义的任意数据。
    格式:可变,但应保证该磁道字符总数不得超过最大编码长度。
    内容:卡片验证码(CVN,算法见附录A),位置及其它内容由发卡机构自行规定。
    6.9 结束标记(ETX)
    用途:标明磁道上有意义数据的结束。
    格式:1个字符。
    内容:“?”。
    6.10 纵向冗余校验码(LRC)
    用途/内容:见GB/T 15120.2。
    格式:1个字符。
    B.2.1 国家代码
    用途:标明可以处理由银行卡产生交易的国家。
    格式:3位数字。
    内容:“156”(见GB/T 2659)。
    B.2.2 货币代码
    用途:标明结算时使用的货币类型。
    格式:3位数字。
    内容:见GB/T 12406。
    B.2.3 金额指数
    用途:决定周期授权量(B.2.4)与本周期余额(B.2.5)两字段的基值。
    格式:1位数字。
    内容:表示周期授权量(B.2.4)与本周期余额(B.2.5)两字段必须乘以10的一个幂指数的值,以此表示货币金额。
    B.2.4 周期授权量
    用途:表示在一个周期内累积交易不能超过的金额。
    格式:4位数字。
    内容:由发卡机构自行规定授权量。
    B.2.5 本周期余额
    用途:表示当前周期内的可用金额。
    格式:4位数字。
    内容:在新的周期开始时,该字段等于周期授权量(B.2.4),消费后逐次递减,余额存本字段。
    B.2.6 周期开始日期
    用途:表示一个新周期开始的日期。
    格式:YDDD形式的4位数字,其中:
    Y——年度最后一个有效字符。
    DDD——年度内天数的顺序号,其范围为001-366。
    B.2.7 周期长度
    用途:表示所有交易的累积值不能超过授权量的时间期限。
    格式:2位数字。
    内容:00——本周期余额只能减少,但不能重置的一种银行卡;
    01~79——本周期的天数;
    80——周期为7天;
    81——周期为14天;
    82——周期为半个月;
    83——周期为一个月;
    84——周期为三个月;
    85——周期为六个月;
    86——周期为一年;
    87~99——保留,待分配。
    B.2.8 密码重输次数
    用途:记录允许未成功输入密码的次数。
    格式:l位数字。
    内容:该字段在发卡和正确输入密码时被赋初值,初值由各发卡机构自定义;当输入密码不正确时该字段减1。
    B.2.9 个人授权控制参数
    用途:提供一种可选择的安全性能。
    格式:6位数字。
    内容:保密算法由各发卡机构自行规定。
    B.2.10 交换控制符
    用途:标明银行卡适用于交换的范围。 格式:l位数字。
    内容:0——无限制;
    1——国际使用; 
    2——限制在国内、跨系统交换; 
    3——限制在省内、跨系统交换;
    4——限制在市内、跨系统交换; 
    5——限制在国内系统内交换; 
    6——限制在省内系统内交换; 
    7——限制在市内系统内交换;
    8——管理卡,不适用于交换;
    9——系统测试卡。
    B.2.11 主账号的账户类型(TA)和服务约束(SR)
    用途:定义主账号(PAN)的账户类型和可提供的服务。
    格式:2位数字。
    内容:a.第1位数字——账户类型
    0——主账号(PAN)未在第3磁道上编码;
    1——储蓄或结算账户;
    2——现金或支票账户;
    3——信用卡账户;
    4——适用于多种账户类型的通用账户;
    5——付息现金或支票账户;
    6~8——保留待分配;
    9——发卡机构内部使用,但不能交换。
    b.第2位数字——服务约束
    0——无约束;
    1——无现金服务;
    2——无销售点(POS)服务;
    3——无现金和销售点(POS)服务;
    4——要求肯定的授权;
    5~7——保留待分配;
    8~9——发卡机构内部使用。
    B.2.12 第一辅助账号的账户类型和服务约束
    用途:同B.2.11中的定义一致,但此字段内容涉及第一辅助账号(SAN-1)(B.2.16)中包含的账号。
    格式:2位数字。
    内容:同B.2.11。
    B.2.13 第二辅助账号的账户类型和服务约束
    用途:同B.2.11中的定义一致,但此字段内容涉及第二辅助账号(SAN-2)(B.2.17)中包含的账号。
    格式:2位数字。
    内容:同B.2.12。
    B.2.14 卡序列号
    用途:区别具有相同主账号(PAN)的卡(同时或连续发行)。
    格式:1位数字。
    内容:由发卡机构定义,在最初发卡或卡失效后换卡时赋值。每次增加卡或发新卡时,该字段值加1。
    B.2.15 卡保密号
    用途:用于建立磁条所含数据与物理卡的联系。
    格式:字段分隔符(FS)。
    内容: FS——表示卡保密号字段不在第3磁道上编码。
    B.2.16 第一辅助账号(SAN-1)
    用途:标明第一个可选用的辅助账号。
    格式:最大12个字符。
    内容:由发卡机构酌情使用。长度为0时,表示不使用第一辅助账号。
    B.2.17 第二辅助账号(SAN-2)
    用途:标明第二个可选用的辅助账户。
    格式:最大12个字符。
    内容:由发卡机构酌情使用。长度为0个字符时,表示不使用第二辅助账号。
    B.2.18 传递标志
    用途:提供可减少传送交换信息长度的功能。它表明交换信息是否包含附加数据的内容。
    格式:1个字符。
    内容:0——包括所有附加数据; 1——不包括附加数据; 2~9——无效。
    B.2.19 加密校验数(CCD)
    用途:通过使用加密公式提供一种校验该磁道上数据完整性的方法。
    格式:6个字符。
    内容:加密方法由各发卡机构自行规定。
    卡片验证码(CVN)的算法
    计算步骤如下:
    计算CVN时使用二个64位的验证密钥,KeyA和KeyB。
    1) 计算CVN的数据源包括:主账号(PAN)、卡失效期和服务代码,从左至右顺序编排。
    2) 将上述数据源扩展成128位二进制数据(不足128位右补二进制0)。
    3) 将128位二进制数据分成两个64位的数据块。最左边的64位为Block1,最右边的64位为Block2。
    4) 使用KeyA对Block1进行加密。
    5) 将Block1的加密结果与Block2进行异或。使用KeyA对异或结果进行加密。
    6) 使用KeyB对加密结果进行解密。
    7) 使用KeyA对解密结果进行加密。
    8) 从左至右将加密结果中的数字(0-9)抽出,组成一组数字。
    9) 从左至右将加密结果中的字符(A-F)抽出,减10后将余数组成一组数字,排列在步骤(8)的数字之后。
    a) 步骤(9)的左边第一组三位数即为CVN值。
     
    例:
    主 账 号:4123 4567 8901 2345 
    有 效 期:8701 
    KeyA:0123 4567 89AB CDEF
    KeyB:FEDC BA98 7654 3210
    服务代码:111
    第一步:数据源为4123456789012345 8701 111
    第二步:扩展为4123 4567 8901 2345 8701 1110 0000 0000
    第三步:Block1=4123 4567 8901 2345  Block2=8701 1110 0000 0000
    第四步:用KeyA对Block1加密;
    结果为:B76A DDCE 71CC C6BE
    第五步:将结果与Block2异或,结果为:306B CCDE 71CC C6BE;再用KeyA加密,结果为:BAE6 746F 6DE1 F0E6
    第六步:用KeyB解密, 结果为:B262 ABCB 9DE9 9A63
    第七步:用KeyA加密, 结果为:8D56 25FA 7801 1A0C
    第八步:抽出结果中的数字,结果为:8562 5780 110
    第九步:抽出结果中的字符,结果为:DFAA C;减10后,结果为:3500 2;连接到第八步的结果之后为:8562 5780 1103 5002
    第十步:最左边三位数就是CVN=856。
     
  • 相关阅读:
    OAuth 2 深入介绍
    浅谈 EF CORE 迁移和实例化的几种方式
    为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具?
    三值 bool? 进行与或运算后的结果
    Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息
    int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型
    .NET 中使用 Mutex 进行跨越进程边界的同步
    UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等)
    谨慎使用 FileInfo.Exists 实例方法,而是使用 File.Exists 静态方法替代
    只需 5 秒钟,你就能取到 WPF 程序的超高分辨率超高清截图
  • 原文地址:https://www.cnblogs.com/yanzi-meng/p/9722651.html
Copyright © 2020-2023  润新知