一种获取动态二磁道信息的方法及终端与流程

文档序号:11287965阅读:605来源:国知局
一种获取动态二磁道信息的方法及终端与流程

本发明属于信息安全技术领域,尤其涉及一种获取动态二磁道信息的方法及终端。



背景技术:

在传统磁条卡交易中,只需要二磁道信息和交易密码即可完成交易,因此二磁道信息在保护交易安全方面起着至关重要的作用。

目前的智能ic卡与终端在进行非接触交易时,终端模拟磁条卡来进行非接交易,终端只要将从智能ic卡中获取的二磁道信息上报给收单机构,即可完成交易,因此二磁道信息在交易中至关重要,如何通过增强二磁道信息的安全性来提高交易安全性是本发明要解决的技术问题。



技术实现要素:

为了通过增强二磁道信息的安全性来达到增强交易安全性的目的,本发明提供了一种获取动态二磁道信息的方法及终端。

本发明的技术方案如下:一种获取动态二磁道信息的方法,包括:

步骤s1:终端从卡片中获取卡片信息,从所述卡片信息中获取第一信息、第二信息、第三信息和二磁道信息;

步骤s2:所述终端根据所述第二信息和所述第三信息计算出待填充数值;所述终端生成随机数,根据所述随机数组成计算动态认证码指令,向卡片发送所述计算动态认证码指令并接收卡片返回的指令响应,从所述指令响应中获取响应数据;

步骤s3:终端根据所述第一信息、所述第二信息、所述响应数据、所述随机数和所述待填充数值对所述二磁道信息进行填充,将填充后得到的二磁道信息作为动态二磁道信息。

上述步骤s1具体包括,

步骤101:所述终端从所述卡片中获取卡片信息;

步骤102:所述终端根据第一预设标签值从所述卡片信息中获取第一信息,根据第二预设标签值从所述卡片信息中获取第二信息,根据第三预设标签值从所述卡片信息中获取第三信息,根据第四预设标签值从所述卡片信息中获取二磁道信息。

上述步骤101具体包括,

步骤101-1:所述终端向所述卡片发送读记录指令,并接收卡片返回的读记录指令响应;

步骤101-2:所述终端判断所述读记录指令响应的状态码字节是否是表示执行成功的数值,是则执行步骤101-3,否则所述终端获取动态二磁道信息失败,结束;

步骤101-3:所述终端从所述读记录指令响应的数据域中获取卡片信息。

上述步骤102之前还包括:所述终端判断所述卡片信息是否完整,是则执行步骤102,否则所述终端获取动态二磁道信息失败,结束;

所述终端判断所述卡片信息是否完整具体为,所述终端判断获取到的所述卡片信息中是否包含第一预设标签值、第二预设标签值、第三预设标签值和第四预设标签值,且各个预设标签值对应有完整的tlv格式,是则所述卡片信息完整,否则所述卡片信息不完整。

优选的,上述终端根据所述第二信息和所述第三信息计算出待填充数值具体包括,所述终端根据预设公式对所述第二信息和所述第三信息进行计算得到待填充数值,所述终端判断所述待填充数值是否满足预设条件,是则所述终端生成所述随机数,否则所述终端获取动态二磁道信息失败,结束;

其中,所述预设公式为n=a-b,其中n是待填充数值,a是第二信息中比特位1的数量值,b是使用第三信息进行赋值得到的数值。

所述终端判断所述待填充数值是否满足预设条件具体为,所述终端判断所述待填充数值是否大于0且小于8,是则满足预设条件,否则不满足预设条件。

优选的,上述从所述指令响应中获取响应数据包括:所述终端根据第五预设标签值从所述指令响应中获取第一响应数据,根据第六预设标签值从所述指令响应中获取第二响应数据。

优选的,所述二磁道信息包括主账号区域、到期日期区域、服务码区域和自定义数据区域。

优选的,上述响应数据包括第一响应数据和第二响应数据,上述步骤s3具体为:所述终端根据第一信息中比特位为1的数据所指示的位置,将第一响应数据填充到二磁道信息的自定义数据区域,根据第二信息中比特位为1的数据所述指示的位置,将第二响应数据和所述随机数填充到二磁道信息的自定义数据区域,将所述待填充数值填充到二磁道信息的低位起第一字节位置,并将填充后得到的二磁道信息作为动态二磁道信息。

所述将所述待填充数值填充到二磁道信息的低位起第一字节位置具体为:所述终端判断二磁道信息的低位起第一字节的后半字节是否是预设值,是则将所述待填充数值填充到二磁道信息的低位起第一字节的前半字节位置,否则将所述待填充数值填充到后半字节位置。

本发明还提供了一种终端,包括:

第一获取模块,用于从卡片中获取卡片信息,并从所述卡片信息中获取第一信息、第二信息、第三信息和二磁道信息;

计算模块,用于根据所述第一获取模块获取到的所述第二信息和所述第三信息计算出待填充数值;

生成模块,用于生成随机数,并根据所述随机数组成计算动态认证码指令;还用于向卡片发送所述计算动态认证码指令并接收卡片返回的指令响应;

第二获取模块,用于从所述生成模块接收到的所述指令响应中获取响应数据;

填充模块,用于根据所述第一获取模块获取的所述第一信息和所述第二信息、所述第二获取模块获取的所述响应数据、所述生成模块生成的所述随机数、所述计算模块计算出的所述待填充数值对所述二磁道信息进行填充得到动态二磁道信息。

优选的,上述第一获取模块包括第一获取单元和第二获取单元;

所述第一获取单元,具体用于从所述卡片中获取卡片信息;

所述第二获取单元,具体用于根据第一预设标签值从所述卡片信息中获取第一信息,根据第二预设标签值从所述卡片信息中获取第二信息,根据第三预设标签值从所述卡片信息中获取第三信息,根据第四预设标签值从所述卡片信息中获取二磁道信息。

优选的,所述第一获取单元包括收发子单元、判断子单元和获取子单元;

所述收发子单元,用于向卡片发送读记录指令,并接收卡片返回的读记录指令响应;

所述判断子单元,用于判断所述收发子单元接收到的所述读记录指令响应的状态码字节是否是表示执行成功的数值;

所述获取子单元,用于当所述判断子单元的判断结果为是时,从所述读记录指令响应的数据域中获取卡片信息;

相应的,所述终端还包括报错模块,用于当所述判断子单元的判断结果为否时,提示获取动态二磁道信息失败。

优选的,上述终端还包括判断模块,所述判断模块,用于判断所述第一获取模块获取到的所述卡片信息是否完整,具体用于判断所述第一获取模块获取到的所述卡片信息中是否包含第一预设标签值、第二预设标签值、第三预设标签值和第四预设标签值,且各个预设标签值对应有完整的tlv格式,是则所述卡片信息完整,否则所述卡片信息不完整。

优选的,上述终端还包括报错模块,所述报错模块用于提示获取动态二磁道信息失败;所述计算模块,具体用于根据预设公式对所述第二信息和所述第三信息进行计算得到待填充数值,并判断所述待填充数值是否满足预设条件,是则触发所述生成模块,否则触发所述报错模块;

所述预设公式为n=a-b,其中n是待填充数值,a是第二信息中比特位1的数量值,b是使用第三信息进行赋值得到的数值。

优选的,上述第二获取模块,具体用于根据第五预设标签值从所述生成模块接收到的所述指令响应中获取第一响应数据,根据第六预设标签值从所述指令响应中获取第二响应数据。

优选的,上述填充模块包括第一填充单元、第二填充单元和第三填充单元;

所述第一填充单元,用于根据第一信息中比特位为1的数据所指示的位置,将响应数据中包含的第一响应数据填充到二磁道信息的自定义数据区域;

所述第二填充单元,用于根据第二信息中比特位为1的数据所述指示的位置,将响应数据中包含的第二响应数据和所述随机数填充到二磁道信息的自定义数据区域;

第三填充单元,用于将所述待填充数值填充到二磁道信息的低位起第一字节位置,并将填充后得到的二磁道信息作为动态二磁道信息。

所述第三填充单元,具体用于判断二磁道信息的低位起第一字节的后半字节是否是预设值,是则将所述待填充数值填充到二磁道信息的低位起第一字节的前半字节位置,否则将所述待填充数值填充到后半字节位置。

本发明的有益效果在于:本发明的终端通过在二磁道信息中填充数据(如:从卡片中获取的卡验证码和交易计数值,以及终端自己生成的随机数)得到动态二磁道信息,并将所述动态二磁道信息上报给收单机构,收单机构对动态二磁道信息校验之后完成交易,从而避免二磁道信息被篡改的风险,进而增强交易安全性。

附图说明

图1是本发明实施例1提供的一种获取动态二磁道信息的方法流程图;

图2是本发明实施例2提供的一种获取动态二磁道信息的方法流程图;

图3是本发明实施例3提供的一种终端的组成框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。本发明中涉及的终端可以为pos机等金融终端。

实施例1

本发明实施例1提供了一种获取动态二磁道信息的方法,如图1所示,包括以下步骤:

步骤s1:终端从卡片中获取卡片信息,从所述卡片信息中获取第一信息、第二信息、第三信息和二磁道信息;

具体的,终端通过向卡片发送读记录指令从卡片中获取到第一信息、第二信息、第三信息和二磁道信息。

优选的,终端向卡片发送读记录指令,并接收卡片返回的指令响应,依次根据第一预设标签值、第二预设标签值、第三预设标签值和第四预设标签值从所述指令响应中获取到第一信息、第二信息、第三信息和二磁道信息。

步骤s2:终端根据所述第二信息和所述第三信息计算出待填充数值;

具体的,终端将第二信息中比特位1的数量记为a,将第三信息记为b,根据预设公式n=a-b计算得到待填充数值,其中n是待填充数值。

步骤s3:终端生成随机数,根据所述随机数组成计算动态认证码指令,向卡片发送所述计算动态认证码指令并接收卡片返回的指令响应;

优选的,终端生成一个长度为4字节的随机数,将所述随机数填充到计算动态认证码指令的数据域中,将填充后的计算动态认证码指令发送给卡片,并接收卡片返回的指令响应。

步骤s4:终端从所述指令响应中获取第一响应数据和第二响应数据;

优选的,终端根据第五预设标签值从所述指令响应中获取第一响应数据,根据第六预设标签值从所述指令响应中获取第二响应数据。

步骤s5:终端根据第一信息、第二信息、第一响应数据、第二响应数据、所述随机数和所述待填充数值对所述二磁道信息进行填充,将填充后得到的二磁道信息作为动态二磁道信息。

具体的,二磁道信息包括主账号(pan)区域、到期日期(ed)区域、服务码(sc)区域和自定义数据(dd)区域。

优选的,终端根据第一信息和第二信息中比特位为1的数据所指示的位置,将所述第一响应数据、所述第二响应数据、所述随机数和所述待填充数值填充到二磁道信息的自定义数据区域,并将填充后得到的二磁道信息作为动态二磁道信息。

实施例2

本发明实施例2提供了一种获取动态二磁道信息的方法,如图2所示,包括以下步骤:

步骤101:终端从卡片中获取卡片信息;

本步骤具体包括,

步骤101-1:终端向卡片发送读记录指令,并接收卡片返回的读记录指令响应;

步骤101-2:终端判断所述读记录指令响应的状态码字节是否是9000,是则执行步骤101-3,否则终端终止交易,获取动态二磁道信息失败,结束。

步骤101-3:终端从所述读记录指令响应的数据域中获取卡片信息。

具体的,终端根据tlv格式(其中tag=70)获取所述指令响应的数据域数据,并将获取的数据域数据作为读取到的卡片信息。

例如,终端向卡片发送的读记录指令为00b2010c00;

终端接收到卡片返回的指令响应如下:

707f9f6c020001563e42353431333132

333435363738343830305e535550504c

4945442f4e4f545e3039303631303133

33303030333333303030323232323230

303031313131309f6401039f62060000

003800009f630600000000e0e09f6502

000e9f66020e709f6b13541312345678

4800d09061019000990000000f9f6701

039000。

其中,所述状态码字节为9000,获取的所述卡片信息为9f6c020001563e42353431333132333435363738343830305e535550504c4945442f4e4f545e303930363130313333303030333333303030323232323230303031313131309f6401039f62060000003800009f630600000000e0e09f6502000e9f66020e709f6b135413123456784800d09061019000990000000f9f670103。

步骤102:终端判断获取到的所述卡片信息是否完整,是则执行步骤103,否则执行步骤111;

具体的,终端判断获取到的所述卡片信息中是否包含第一预设标签值、第二预设标签值、第三预设标签值和第四预设标签值,且各个预设标签值对应有完整的tlv格式,是则所述卡片信息完整,否则所述卡片信息不完整。

具体的,第一预设标签值为9f65,第二预设标签值为9f66,第三预设标签值为9f67,第四预设标签值为9f6b。

步骤103:终端根据第一预设标签值从所述卡片信息中获取第一信息,根据第二预设标签值从所述卡片信息中获取第二信息,根据第三预设标签值从所述卡片信息中获取第三信息,根据第四预设标签值从所述卡片信息中获取二磁道信息;

例如,根据第一预设标签值9f65从卡片信息中获取到的第一信息(卡验证码的位图信息)为000e,根据第二预设标签值9f66从卡片信息中获取到的第二信息(待填充数值和交易计数值的位图信息)为0e70,根据第三预设标签值9f67从卡片信息中获取到的第三信息(如:交易计数值的位数信息)为03,根据第四预设标签值9f6b从卡片信息中获取到的二磁道信息(track2data)为5413123456784800d09061019000990000000f。

步骤104:终端根据预设公式、第二信息和第三信息计算得到待填充数值;

具体的,所述预设公式为n=a-b,其中n是待填充数值,a是第二信息中比特位1的数量值,b是使用第三信息进行赋值得到的数值。

例如,第二信息为0e70,则a=6,第三信息为03,则b=3,则n=a-b=3。

步骤105:终端判断所述待填充数值是否满足预设条件,是则执行步骤106,否则执行步骤111;

具体的,判断所述待填充数值是否大于0且小于8,是则满足预设条件,执行步骤106,否则不满足预设条件,执行步骤111。

例如,本实施例中计算得到的待填充数值等于3,满足预设条件。

步骤106:终端生成4字节的随机数,根据所述随机数组成计算动态认证码指令,向卡片发送所述计算动态认证码指令并接收卡片返回的指令响应;

本实施例,所述根据随机数组成计算动态认证码指令具体为:终端将生成的4字节的随机数填充到计算动态认证码指令的数据域中,所述计算动态认证码指令的数据格式为802a8e8004data00。

例如,终端生成的4字节的随机数为00000899;

终端发送给卡片的计算动态认证码指令为:802a8e80040000089900。

步骤107:终端判断所述指令响应的数据格式是否正确,是则执行步骤108,否则执行步骤111;

本步骤具体包括:

步骤107-1:终端判断所述指令响应的状态码字节是否为9000,是则执行步骤107-2,否则所述指令响应的数据格式不正确,执行步骤111;

步骤107-2:终端判断所述指令响应的数据域的第一、第二字节是否为770f,是则执行步骤107-3,否则所述指令响应的数据格式不正确,执行步骤111;

例如,终端接收到的卡片返回的所述指令响应为770f9f6102b8929f6002fbc79f3602005e9000。

步骤107-3:终端判断所述指令响应的数据域中是否包含第五预设标签值和第六预设标签值,是则所述指令响应的数据格式正确,执行步骤108,否则所述指令响应的数据格式不正确,执行步骤111。

具体的,所述第五预设标签值为9f61,所述第六预设标签值为9f36。

步骤108:终端根据第五预设标签值从所述指令响应中获取第一响应数据,根据第六预设标签值从所述指令响应中获取第二响应数据;

本实施例中,所述第一响应数据具体为卡验证码,所述第二响应数据具体为交易计数值。

例如,所述指令响应为770f9f6102b8929f6002fbc79f3602005e9000,根据第五预设标签值9f61获取的第一响应数据为b892,根据第六预设标签值9f36获取的第二响应数据为005e。

步骤109:终端根据第一信息中比特位为1的数据所指示的位置和第二信息中比特位为1的数据所指示的位置,将第一响应数据、第二响应数据和所述4字节的随机数填充到二磁道信息中,将所述待填充数值填充到二磁道信息的低位起第一字节位置;

具体的,终端根据第一信息中比特位为1的数据所指示的位置,将第一响应数据填充到二磁道信息的自定义数据区域,根据第二信息中比特位为1的数据所述指示的位置,将第二响应数据和所述4字节的随机数填充到二磁道信息的自定义数据区域。

所述将所述待填充数值填充到二磁道信息的低位起第一个字节位置具体为:终端判断二磁道信息的低位起第一字节的后半字节是否是f,是则将所述待填充数值填充到二磁道信息的低位起第一字节的前半字节位置,否则将所述待填充数值填充到所述后半字节位置。

例如,填充之前的二磁道信息(track2data)为5413123456784800d09061019000990000000f;

第一信息为000e,转换为二进制数是1110,则第一信息中比特位为1的数据所指示的位置具体为二磁道信息中低位起的第二字节以及第三字节的后半字节;

第一响应数据为b892,对应十进制数是47250;

第二信息为0e70,转换为二进制数是111001110000;则第二信息中比特位为1的数据所指示的位置具体为二磁道信息中低位起的第三字节的前半字节、第四字节、第六字节和第七字节的后半字节;

第二响应数据为005e,对应十进制数是94;4字节的随机数为00000899;

所述待填充数值等于3;

填充后得到的二磁道信息如下:

5413123456784800d09061019094998992503f。

步骤110:终端将填充后得到的二磁道信息作为获取的动态二磁道信息,结束;

例如,本实施例中经过对二磁道信息进行填充操作之后得到的动态二磁道信息为5413123456784800d09061019094998992503f。

步骤111:终端获取动态二磁道信息失败,结束。

实施例3

本实施例提供的一种终端,如图3所示,包括:

第一获取模块301,用于从卡片中获取卡片信息,并从所述卡片信息中获取第一信息、第二信息、第三信息和二磁道信息;

优选的,第一信息具体为卡验证码的位图信息,第二信息具体为待填充数值和交易计数值的位图信息,第三信息具体为交易计数值的位数信息。

计算模块302,用于根据所述所述第一获取模块301获取到的所述第二信息和所述第三信息计算出待填充数值;

生成模块303,用于生成随机数,并根据所述随机数组成计算动态认证码指令;还用于向卡片发送所述计算动态认证码指令并接收卡片返回的指令响应;

第二获取模块304,用于从所述生成模块303接收到的所述指令响应中获取响应数据;

填充模块305,用于根据所述第一获取模块301获取的所述第一信息和所述第二信息、所述第二获取模块304获取的所述响应数据、所述生成模块303生成的所述随机数、所述计算模块302计算出的所述待填充数值对所述二磁道信息进行填充得到动态二磁道信息。

本实施例中,所述第一获取模块301包括第一获取单元和第二获取单元;

所述第一获取单元,具体用于从所述卡片中获取卡片信息;

所述第二获取单元,具体用于根据第一预设标签值从所述卡片信息中获取第一信息,根据第二预设标签值从所述卡片信息中获取第二信息,根据第三预设标签值从所述卡片信息中获取第三信息,根据第四预设标签值从所述卡片信息中获取二磁道信息。

进一步的,所述第一获取单元包括收发子单元、判断子单元和获取子单元;

所述收发子单元,用于向卡片发送读记录指令,并接收卡片返回的读记录指令响应;

所述判断子单元,用于判断所述收发子单元接收到的所述读记录指令响应的状态码字节是否是表示执行成功的数值;

所述获取子单元,用于当所述判断子单元的判断结果为是时,从所述读记录指令响应的数据域中获取卡片信息;

所述终端还包括报错模块,用于当所述判断子单元的判断结果为否时,提示获取动态二磁道信息失败。

进一步的,所述终端还可以包括判断模块,所述判断模块,用于判断所述第一获取模块301获取到的所述卡片信息是否完整,具体用于判断所述第一获取模块301获取到的所述卡片信息中是否包含第一预设标签值、第二预设标签值、第三预设标签值和第四预设标签值,且各个预设标签值对应有完整的tlv格式,是则所述卡片信息完整,否则所述卡片信息不完整。

所述计算模块302,具体用于根据预设公式对所述第二信息和所述第三信息进行计算得到待填充数值,并判断所述待填充数值是否满足预设条件,是则触发所述生成模块303,否则触发所述报错模块;所述终端还包括报错模块,所述报错模块用于提示获取动态二磁道信息失败;

所述预设公式为n=a-b,其中n是待填充数值,a是第二信息中比特位1的数量值,b是使用第三信息进行赋值得到的数值。

优选的,判断所述待填充数值是否满足预设条件具体为,判断所述待填充数值是否大于0且小于8,是则触发所述生成模块,否则触发所述报错模块。

优选的,本实施例中所述二磁道信息包括主账号区域、到期日期区域、服务码区域和自定义数据区域。

本实施例中,所述第二获取模块304,具体用于根据第五预设标签值从所述生成模块303接收到的所述指令响应中获取第一响应数据,根据第六预设标签值从所述指令响应中获取第二响应数据。

本实施例中,所述填充模块305包括第一填充单元、第二填充单元和第三填充单元;

所述第一填充单元,用于根据第一信息中比特位为1的数据所指示的位置,将响应数据中包含的第一响应数据填充到二磁道信息的自定义数据区域;优选的,所述第一响应数据具体为卡验证码,所述第二响应数据具体为交易计数值。

所述第二填充单元,用于根据第二信息中比特位为1的数据所述指示的位置,将响应数据中包含的第二响应数据和所述随机数填充到二磁道信息的自定义数据区域;

第三填充单元,用于将所述待填充数值填充到二磁道信息的低位起第一字节位置,并将填充后得到的二磁道信息作为动态二磁道信息。

所述第三填充单元,还可以具体用于判断二磁道信息的低位起第一字节的后半字节是否是预设值,是则将所述待填充数值填充到二磁道信息的低位起第一字节的前半字节位置,否则将所述待填充数值填充到后半字节位置。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1