本發(fā)明屬于信息安全技術(shù)領(lǐng)域,尤其涉及一種獲取動態(tài)二磁道信息的方法及終端。
背景技術(shù):
在傳統(tǒng)磁條卡交易中,只需要二磁道信息和交易密碼即可完成交易,因此二磁道信息在保護(hù)交易安全方面起著至關(guān)重要的作用。
目前的智能ic卡與終端在進(jìn)行非接觸交易時,終端模擬磁條卡來進(jìn)行非接交易,終端只要將從智能ic卡中獲取的二磁道信息上報給收單機(jī)構(gòu),即可完成交易,因此二磁道信息在交易中至關(guān)重要,如何通過增強(qiáng)二磁道信息的安全性來提高交易安全性是本發(fā)明要解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
為了通過增強(qiáng)二磁道信息的安全性來達(dá)到增強(qiáng)交易安全性的目的,本發(fā)明提供了一種獲取動態(tài)二磁道信息的方法及終端。
本發(fā)明的技術(shù)方案如下:一種獲取動態(tài)二磁道信息的方法,包括:
步驟s1:終端從卡片中獲取卡片信息,從所述卡片信息中獲取第一信息、第二信息、第三信息和二磁道信息;
步驟s2:所述終端根據(jù)所述第二信息和所述第三信息計算出待填充數(shù)值;所述終端生成隨機(jī)數(shù),根據(jù)所述隨機(jī)數(shù)組成計算動態(tài)認(rèn)證碼指令,向卡片發(fā)送所述計算動態(tài)認(rèn)證碼指令并接收卡片返回的指令響應(yīng),從所述指令響應(yīng)中獲取響應(yīng)數(shù)據(jù);
步驟s3:終端根據(jù)所述第一信息、所述第二信息、所述響應(yīng)數(shù)據(jù)、所述隨機(jī)數(shù)和所述待填充數(shù)值對所述二磁道信息進(jìn)行填充,將填充后得到的二磁道信息作為動態(tài)二磁道信息。
上述步驟s1具體包括,
步驟101:所述終端從所述卡片中獲取卡片信息;
步驟102:所述終端根據(jù)第一預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第一信息,根據(jù)第二預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第二信息,根據(jù)第三預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第三信息,根據(jù)第四預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取二磁道信息。
上述步驟101具體包括,
步驟101-1:所述終端向所述卡片發(fā)送讀記錄指令,并接收卡片返回的讀記錄指令響應(yīng);
步驟101-2:所述終端判斷所述讀記錄指令響應(yīng)的狀態(tài)碼字節(jié)是否是表示執(zhí)行成功的數(shù)值,是則執(zhí)行步驟101-3,否則所述終端獲取動態(tài)二磁道信息失敗,結(jié)束;
步驟101-3:所述終端從所述讀記錄指令響應(yīng)的數(shù)據(jù)域中獲取卡片信息。
上述步驟102之前還包括:所述終端判斷所述卡片信息是否完整,是則執(zhí)行步驟102,否則所述終端獲取動態(tài)二磁道信息失敗,結(jié)束;
所述終端判斷所述卡片信息是否完整具體為,所述終端判斷獲取到的所述卡片信息中是否包含第一預(yù)設(shè)標(biāo)簽值、第二預(yù)設(shè)標(biāo)簽值、第三預(yù)設(shè)標(biāo)簽值和第四預(yù)設(shè)標(biāo)簽值,且各個預(yù)設(shè)標(biāo)簽值對應(yīng)有完整的tlv格式,是則所述卡片信息完整,否則所述卡片信息不完整。
優(yōu)選的,上述終端根據(jù)所述第二信息和所述第三信息計算出待填充數(shù)值具體包括,所述終端根據(jù)預(yù)設(shè)公式對所述第二信息和所述第三信息進(jìn)行計算得到待填充數(shù)值,所述終端判斷所述待填充數(shù)值是否滿足預(yù)設(shè)條件,是則所述終端生成所述隨機(jī)數(shù),否則所述終端獲取動態(tài)二磁道信息失敗,結(jié)束;
其中,所述預(yù)設(shè)公式為n=a-b,其中n是待填充數(shù)值,a是第二信息中比特位1的數(shù)量值,b是使用第三信息進(jìn)行賦值得到的數(shù)值。
所述終端判斷所述待填充數(shù)值是否滿足預(yù)設(shè)條件具體為,所述終端判斷所述待填充數(shù)值是否大于0且小于8,是則滿足預(yù)設(shè)條件,否則不滿足預(yù)設(shè)條件。
優(yōu)選的,上述從所述指令響應(yīng)中獲取響應(yīng)數(shù)據(jù)包括:所述終端根據(jù)第五預(yù)設(shè)標(biāo)簽值從所述指令響應(yīng)中獲取第一響應(yīng)數(shù)據(jù),根據(jù)第六預(yù)設(shè)標(biāo)簽值從所述指令響應(yīng)中獲取第二響應(yīng)數(shù)據(jù)。
優(yōu)選的,所述二磁道信息包括主賬號區(qū)域、到期日期區(qū)域、服務(wù)碼區(qū)域和自定義數(shù)據(jù)區(qū)域。
優(yōu)選的,上述響應(yīng)數(shù)據(jù)包括第一響應(yīng)數(shù)據(jù)和第二響應(yīng)數(shù)據(jù),上述步驟s3具體為:所述終端根據(jù)第一信息中比特位為1的數(shù)據(jù)所指示的位置,將第一響應(yīng)數(shù)據(jù)填充到二磁道信息的自定義數(shù)據(jù)區(qū)域,根據(jù)第二信息中比特位為1的數(shù)據(jù)所述指示的位置,將第二響應(yīng)數(shù)據(jù)和所述隨機(jī)數(shù)填充到二磁道信息的自定義數(shù)據(jù)區(qū)域,將所述待填充數(shù)值填充到二磁道信息的低位起第一字節(jié)位置,并將填充后得到的二磁道信息作為動態(tài)二磁道信息。
所述將所述待填充數(shù)值填充到二磁道信息的低位起第一字節(jié)位置具體為:所述終端判斷二磁道信息的低位起第一字節(jié)的后半字節(jié)是否是預(yù)設(shè)值,是則將所述待填充數(shù)值填充到二磁道信息的低位起第一字節(jié)的前半字節(jié)位置,否則將所述待填充數(shù)值填充到后半字節(jié)位置。
本發(fā)明還提供了一種終端,包括:
第一獲取模塊,用于從卡片中獲取卡片信息,并從所述卡片信息中獲取第一信息、第二信息、第三信息和二磁道信息;
計算模塊,用于根據(jù)所述第一獲取模塊獲取到的所述第二信息和所述第三信息計算出待填充數(shù)值;
生成模塊,用于生成隨機(jī)數(shù),并根據(jù)所述隨機(jī)數(shù)組成計算動態(tài)認(rèn)證碼指令;還用于向卡片發(fā)送所述計算動態(tài)認(rèn)證碼指令并接收卡片返回的指令響應(yīng);
第二獲取模塊,用于從所述生成模塊接收到的所述指令響應(yīng)中獲取響應(yīng)數(shù)據(jù);
填充模塊,用于根據(jù)所述第一獲取模塊獲取的所述第一信息和所述第二信息、所述第二獲取模塊獲取的所述響應(yīng)數(shù)據(jù)、所述生成模塊生成的所述隨機(jī)數(shù)、所述計算模塊計算出的所述待填充數(shù)值對所述二磁道信息進(jìn)行填充得到動態(tài)二磁道信息。
優(yōu)選的,上述第一獲取模塊包括第一獲取單元和第二獲取單元;
所述第一獲取單元,具體用于從所述卡片中獲取卡片信息;
所述第二獲取單元,具體用于根據(jù)第一預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第一信息,根據(jù)第二預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第二信息,根據(jù)第三預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第三信息,根據(jù)第四預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取二磁道信息。
優(yōu)選的,所述第一獲取單元包括收發(fā)子單元、判斷子單元和獲取子單元;
所述收發(fā)子單元,用于向卡片發(fā)送讀記錄指令,并接收卡片返回的讀記錄指令響應(yīng);
所述判斷子單元,用于判斷所述收發(fā)子單元接收到的所述讀記錄指令響應(yīng)的狀態(tài)碼字節(jié)是否是表示執(zhí)行成功的數(shù)值;
所述獲取子單元,用于當(dāng)所述判斷子單元的判斷結(jié)果為是時,從所述讀記錄指令響應(yīng)的數(shù)據(jù)域中獲取卡片信息;
相應(yīng)的,所述終端還包括報錯模塊,用于當(dāng)所述判斷子單元的判斷結(jié)果為否時,提示獲取動態(tài)二磁道信息失敗。
優(yōu)選的,上述終端還包括判斷模塊,所述判斷模塊,用于判斷所述第一獲取模塊獲取到的所述卡片信息是否完整,具體用于判斷所述第一獲取模塊獲取到的所述卡片信息中是否包含第一預(yù)設(shè)標(biāo)簽值、第二預(yù)設(shè)標(biāo)簽值、第三預(yù)設(shè)標(biāo)簽值和第四預(yù)設(shè)標(biāo)簽值,且各個預(yù)設(shè)標(biāo)簽值對應(yīng)有完整的tlv格式,是則所述卡片信息完整,否則所述卡片信息不完整。
優(yōu)選的,上述終端還包括報錯模塊,所述報錯模塊用于提示獲取動態(tài)二磁道信息失敗;所述計算模塊,具體用于根據(jù)預(yù)設(shè)公式對所述第二信息和所述第三信息進(jìn)行計算得到待填充數(shù)值,并判斷所述待填充數(shù)值是否滿足預(yù)設(shè)條件,是則觸發(fā)所述生成模塊,否則觸發(fā)所述報錯模塊;
所述預(yù)設(shè)公式為n=a-b,其中n是待填充數(shù)值,a是第二信息中比特位1的數(shù)量值,b是使用第三信息進(jìn)行賦值得到的數(shù)值。
優(yōu)選的,上述第二獲取模塊,具體用于根據(jù)第五預(yù)設(shè)標(biāo)簽值從所述生成模塊接收到的所述指令響應(yīng)中獲取第一響應(yīng)數(shù)據(jù),根據(jù)第六預(yù)設(shè)標(biāo)簽值從所述指令響應(yīng)中獲取第二響應(yīng)數(shù)據(jù)。
優(yōu)選的,上述填充模塊包括第一填充單元、第二填充單元和第三填充單元;
所述第一填充單元,用于根據(jù)第一信息中比特位為1的數(shù)據(jù)所指示的位置,將響應(yīng)數(shù)據(jù)中包含的第一響應(yīng)數(shù)據(jù)填充到二磁道信息的自定義數(shù)據(jù)區(qū)域;
所述第二填充單元,用于根據(jù)第二信息中比特位為1的數(shù)據(jù)所述指示的位置,將響應(yīng)數(shù)據(jù)中包含的第二響應(yīng)數(shù)據(jù)和所述隨機(jī)數(shù)填充到二磁道信息的自定義數(shù)據(jù)區(qū)域;
第三填充單元,用于將所述待填充數(shù)值填充到二磁道信息的低位起第一字節(jié)位置,并將填充后得到的二磁道信息作為動態(tài)二磁道信息。
所述第三填充單元,具體用于判斷二磁道信息的低位起第一字節(jié)的后半字節(jié)是否是預(yù)設(shè)值,是則將所述待填充數(shù)值填充到二磁道信息的低位起第一字節(jié)的前半字節(jié)位置,否則將所述待填充數(shù)值填充到后半字節(jié)位置。
本發(fā)明的有益效果在于:本發(fā)明的終端通過在二磁道信息中填充數(shù)據(jù)(如:從卡片中獲取的卡驗證碼和交易計數(shù)值,以及終端自己生成的隨機(jī)數(shù))得到動態(tài)二磁道信息,并將所述動態(tài)二磁道信息上報給收單機(jī)構(gòu),收單機(jī)構(gòu)對動態(tài)二磁道信息校驗之后完成交易,從而避免二磁道信息被篡改的風(fēng)險,進(jìn)而增強(qiáng)交易安全性。
附圖說明
圖1是本發(fā)明實施例1提供的一種獲取動態(tài)二磁道信息的方法流程圖;
圖2是本發(fā)明實施例2提供的一種獲取動態(tài)二磁道信息的方法流程圖;
圖3是本發(fā)明實施例3提供的一種終端的組成框圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。本發(fā)明中涉及的終端可以為pos機(jī)等金融終端。
實施例1
本發(fā)明實施例1提供了一種獲取動態(tài)二磁道信息的方法,如圖1所示,包括以下步驟:
步驟s1:終端從卡片中獲取卡片信息,從所述卡片信息中獲取第一信息、第二信息、第三信息和二磁道信息;
具體的,終端通過向卡片發(fā)送讀記錄指令從卡片中獲取到第一信息、第二信息、第三信息和二磁道信息。
優(yōu)選的,終端向卡片發(fā)送讀記錄指令,并接收卡片返回的指令響應(yīng),依次根據(jù)第一預(yù)設(shè)標(biāo)簽值、第二預(yù)設(shè)標(biāo)簽值、第三預(yù)設(shè)標(biāo)簽值和第四預(yù)設(shè)標(biāo)簽值從所述指令響應(yīng)中獲取到第一信息、第二信息、第三信息和二磁道信息。
步驟s2:終端根據(jù)所述第二信息和所述第三信息計算出待填充數(shù)值;
具體的,終端將第二信息中比特位1的數(shù)量記為a,將第三信息記為b,根據(jù)預(yù)設(shè)公式n=a-b計算得到待填充數(shù)值,其中n是待填充數(shù)值。
步驟s3:終端生成隨機(jī)數(shù),根據(jù)所述隨機(jī)數(shù)組成計算動態(tài)認(rèn)證碼指令,向卡片發(fā)送所述計算動態(tài)認(rèn)證碼指令并接收卡片返回的指令響應(yīng);
優(yōu)選的,終端生成一個長度為4字節(jié)的隨機(jī)數(shù),將所述隨機(jī)數(shù)填充到計算動態(tài)認(rèn)證碼指令的數(shù)據(jù)域中,將填充后的計算動態(tài)認(rèn)證碼指令發(fā)送給卡片,并接收卡片返回的指令響應(yīng)。
步驟s4:終端從所述指令響應(yīng)中獲取第一響應(yīng)數(shù)據(jù)和第二響應(yīng)數(shù)據(jù);
優(yōu)選的,終端根據(jù)第五預(yù)設(shè)標(biāo)簽值從所述指令響應(yīng)中獲取第一響應(yīng)數(shù)據(jù),根據(jù)第六預(yù)設(shè)標(biāo)簽值從所述指令響應(yīng)中獲取第二響應(yīng)數(shù)據(jù)。
步驟s5:終端根據(jù)第一信息、第二信息、第一響應(yīng)數(shù)據(jù)、第二響應(yīng)數(shù)據(jù)、所述隨機(jī)數(shù)和所述待填充數(shù)值對所述二磁道信息進(jìn)行填充,將填充后得到的二磁道信息作為動態(tài)二磁道信息。
具體的,二磁道信息包括主賬號(pan)區(qū)域、到期日期(ed)區(qū)域、服務(wù)碼(sc)區(qū)域和自定義數(shù)據(jù)(dd)區(qū)域。
優(yōu)選的,終端根據(jù)第一信息和第二信息中比特位為1的數(shù)據(jù)所指示的位置,將所述第一響應(yīng)數(shù)據(jù)、所述第二響應(yīng)數(shù)據(jù)、所述隨機(jī)數(shù)和所述待填充數(shù)值填充到二磁道信息的自定義數(shù)據(jù)區(qū)域,并將填充后得到的二磁道信息作為動態(tài)二磁道信息。
實施例2
本發(fā)明實施例2提供了一種獲取動態(tài)二磁道信息的方法,如圖2所示,包括以下步驟:
步驟101:終端從卡片中獲取卡片信息;
本步驟具體包括,
步驟101-1:終端向卡片發(fā)送讀記錄指令,并接收卡片返回的讀記錄指令響應(yīng);
步驟101-2:終端判斷所述讀記錄指令響應(yīng)的狀態(tài)碼字節(jié)是否是9000,是則執(zhí)行步驟101-3,否則終端終止交易,獲取動態(tài)二磁道信息失敗,結(jié)束。
步驟101-3:終端從所述讀記錄指令響應(yīng)的數(shù)據(jù)域中獲取卡片信息。
具體的,終端根據(jù)tlv格式(其中tag=70)獲取所述指令響應(yīng)的數(shù)據(jù)域數(shù)據(jù),并將獲取的數(shù)據(jù)域數(shù)據(jù)作為讀取到的卡片信息。
例如,終端向卡片發(fā)送的讀記錄指令為00b2010c00;
終端接收到卡片返回的指令響應(yīng)如下:
707f9f6c020001563e42353431333132
333435363738343830305e535550504c
4945442f4e4f545e3039303631303133
33303030333333303030323232323230
303031313131309f6401039f62060000
003800009f630600000000e0e09f6502
000e9f66020e709f6b13541312345678
4800d09061019000990000000f9f6701
039000。
其中,所述狀態(tài)碼字節(jié)為9000,獲取的所述卡片信息為9f6c020001563e42353431333132333435363738343830305e535550504c4945442f4e4f545e303930363130313333303030333333303030323232323230303031313131309f6401039f62060000003800009f630600000000e0e09f6502000e9f66020e709f6b135413123456784800d09061019000990000000f9f670103。
步驟102:終端判斷獲取到的所述卡片信息是否完整,是則執(zhí)行步驟103,否則執(zhí)行步驟111;
具體的,終端判斷獲取到的所述卡片信息中是否包含第一預(yù)設(shè)標(biāo)簽值、第二預(yù)設(shè)標(biāo)簽值、第三預(yù)設(shè)標(biāo)簽值和第四預(yù)設(shè)標(biāo)簽值,且各個預(yù)設(shè)標(biāo)簽值對應(yīng)有完整的tlv格式,是則所述卡片信息完整,否則所述卡片信息不完整。
具體的,第一預(yù)設(shè)標(biāo)簽值為9f65,第二預(yù)設(shè)標(biāo)簽值為9f66,第三預(yù)設(shè)標(biāo)簽值為9f67,第四預(yù)設(shè)標(biāo)簽值為9f6b。
步驟103:終端根據(jù)第一預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第一信息,根據(jù)第二預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第二信息,根據(jù)第三預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第三信息,根據(jù)第四預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取二磁道信息;
例如,根據(jù)第一預(yù)設(shè)標(biāo)簽值9f65從卡片信息中獲取到的第一信息(卡驗證碼的位圖信息)為000e,根據(jù)第二預(yù)設(shè)標(biāo)簽值9f66從卡片信息中獲取到的第二信息(待填充數(shù)值和交易計數(shù)值的位圖信息)為0e70,根據(jù)第三預(yù)設(shè)標(biāo)簽值9f67從卡片信息中獲取到的第三信息(如:交易計數(shù)值的位數(shù)信息)為03,根據(jù)第四預(yù)設(shè)標(biāo)簽值9f6b從卡片信息中獲取到的二磁道信息(track2data)為5413123456784800d09061019000990000000f。
步驟104:終端根據(jù)預(yù)設(shè)公式、第二信息和第三信息計算得到待填充數(shù)值;
具體的,所述預(yù)設(shè)公式為n=a-b,其中n是待填充數(shù)值,a是第二信息中比特位1的數(shù)量值,b是使用第三信息進(jìn)行賦值得到的數(shù)值。
例如,第二信息為0e70,則a=6,第三信息為03,則b=3,則n=a-b=3。
步驟105:終端判斷所述待填充數(shù)值是否滿足預(yù)設(shè)條件,是則執(zhí)行步驟106,否則執(zhí)行步驟111;
具體的,判斷所述待填充數(shù)值是否大于0且小于8,是則滿足預(yù)設(shè)條件,執(zhí)行步驟106,否則不滿足預(yù)設(shè)條件,執(zhí)行步驟111。
例如,本實施例中計算得到的待填充數(shù)值等于3,滿足預(yù)設(shè)條件。
步驟106:終端生成4字節(jié)的隨機(jī)數(shù),根據(jù)所述隨機(jī)數(shù)組成計算動態(tài)認(rèn)證碼指令,向卡片發(fā)送所述計算動態(tài)認(rèn)證碼指令并接收卡片返回的指令響應(yīng);
本實施例,所述根據(jù)隨機(jī)數(shù)組成計算動態(tài)認(rèn)證碼指令具體為:終端將生成的4字節(jié)的隨機(jī)數(shù)填充到計算動態(tài)認(rèn)證碼指令的數(shù)據(jù)域中,所述計算動態(tài)認(rèn)證碼指令的數(shù)據(jù)格式為802a8e8004data00。
例如,終端生成的4字節(jié)的隨機(jī)數(shù)為00000899;
終端發(fā)送給卡片的計算動態(tài)認(rèn)證碼指令為:802a8e80040000089900。
步驟107:終端判斷所述指令響應(yīng)的數(shù)據(jù)格式是否正確,是則執(zhí)行步驟108,否則執(zhí)行步驟111;
本步驟具體包括:
步驟107-1:終端判斷所述指令響應(yīng)的狀態(tài)碼字節(jié)是否為9000,是則執(zhí)行步驟107-2,否則所述指令響應(yīng)的數(shù)據(jù)格式不正確,執(zhí)行步驟111;
步驟107-2:終端判斷所述指令響應(yīng)的數(shù)據(jù)域的第一、第二字節(jié)是否為770f,是則執(zhí)行步驟107-3,否則所述指令響應(yīng)的數(shù)據(jù)格式不正確,執(zhí)行步驟111;
例如,終端接收到的卡片返回的所述指令響應(yīng)為770f9f6102b8929f6002fbc79f3602005e9000。
步驟107-3:終端判斷所述指令響應(yīng)的數(shù)據(jù)域中是否包含第五預(yù)設(shè)標(biāo)簽值和第六預(yù)設(shè)標(biāo)簽值,是則所述指令響應(yīng)的數(shù)據(jù)格式正確,執(zhí)行步驟108,否則所述指令響應(yīng)的數(shù)據(jù)格式不正確,執(zhí)行步驟111。
具體的,所述第五預(yù)設(shè)標(biāo)簽值為9f61,所述第六預(yù)設(shè)標(biāo)簽值為9f36。
步驟108:終端根據(jù)第五預(yù)設(shè)標(biāo)簽值從所述指令響應(yīng)中獲取第一響應(yīng)數(shù)據(jù),根據(jù)第六預(yù)設(shè)標(biāo)簽值從所述指令響應(yīng)中獲取第二響應(yīng)數(shù)據(jù);
本實施例中,所述第一響應(yīng)數(shù)據(jù)具體為卡驗證碼,所述第二響應(yīng)數(shù)據(jù)具體為交易計數(shù)值。
例如,所述指令響應(yīng)為770f9f6102b8929f6002fbc79f3602005e9000,根據(jù)第五預(yù)設(shè)標(biāo)簽值9f61獲取的第一響應(yīng)數(shù)據(jù)為b892,根據(jù)第六預(yù)設(shè)標(biāo)簽值9f36獲取的第二響應(yīng)數(shù)據(jù)為005e。
步驟109:終端根據(jù)第一信息中比特位為1的數(shù)據(jù)所指示的位置和第二信息中比特位為1的數(shù)據(jù)所指示的位置,將第一響應(yīng)數(shù)據(jù)、第二響應(yīng)數(shù)據(jù)和所述4字節(jié)的隨機(jī)數(shù)填充到二磁道信息中,將所述待填充數(shù)值填充到二磁道信息的低位起第一字節(jié)位置;
具體的,終端根據(jù)第一信息中比特位為1的數(shù)據(jù)所指示的位置,將第一響應(yīng)數(shù)據(jù)填充到二磁道信息的自定義數(shù)據(jù)區(qū)域,根據(jù)第二信息中比特位為1的數(shù)據(jù)所述指示的位置,將第二響應(yīng)數(shù)據(jù)和所述4字節(jié)的隨機(jī)數(shù)填充到二磁道信息的自定義數(shù)據(jù)區(qū)域。
所述將所述待填充數(shù)值填充到二磁道信息的低位起第一個字節(jié)位置具體為:終端判斷二磁道信息的低位起第一字節(jié)的后半字節(jié)是否是f,是則將所述待填充數(shù)值填充到二磁道信息的低位起第一字節(jié)的前半字節(jié)位置,否則將所述待填充數(shù)值填充到所述后半字節(jié)位置。
例如,填充之前的二磁道信息(track2data)為5413123456784800d09061019000990000000f;
第一信息為000e,轉(zhuǎn)換為二進(jìn)制數(shù)是1110,則第一信息中比特位為1的數(shù)據(jù)所指示的位置具體為二磁道信息中低位起的第二字節(jié)以及第三字節(jié)的后半字節(jié);
第一響應(yīng)數(shù)據(jù)為b892,對應(yīng)十進(jìn)制數(shù)是47250;
第二信息為0e70,轉(zhuǎn)換為二進(jìn)制數(shù)是111001110000;則第二信息中比特位為1的數(shù)據(jù)所指示的位置具體為二磁道信息中低位起的第三字節(jié)的前半字節(jié)、第四字節(jié)、第六字節(jié)和第七字節(jié)的后半字節(jié);
第二響應(yīng)數(shù)據(jù)為005e,對應(yīng)十進(jìn)制數(shù)是94;4字節(jié)的隨機(jī)數(shù)為00000899;
所述待填充數(shù)值等于3;
填充后得到的二磁道信息如下:
5413123456784800d09061019094998992503f。
步驟110:終端將填充后得到的二磁道信息作為獲取的動態(tài)二磁道信息,結(jié)束;
例如,本實施例中經(jīng)過對二磁道信息進(jìn)行填充操作之后得到的動態(tài)二磁道信息為5413123456784800d09061019094998992503f。
步驟111:終端獲取動態(tài)二磁道信息失敗,結(jié)束。
實施例3
本實施例提供的一種終端,如圖3所示,包括:
第一獲取模塊301,用于從卡片中獲取卡片信息,并從所述卡片信息中獲取第一信息、第二信息、第三信息和二磁道信息;
優(yōu)選的,第一信息具體為卡驗證碼的位圖信息,第二信息具體為待填充數(shù)值和交易計數(shù)值的位圖信息,第三信息具體為交易計數(shù)值的位數(shù)信息。
計算模塊302,用于根據(jù)所述所述第一獲取模塊301獲取到的所述第二信息和所述第三信息計算出待填充數(shù)值;
生成模塊303,用于生成隨機(jī)數(shù),并根據(jù)所述隨機(jī)數(shù)組成計算動態(tài)認(rèn)證碼指令;還用于向卡片發(fā)送所述計算動態(tài)認(rèn)證碼指令并接收卡片返回的指令響應(yīng);
第二獲取模塊304,用于從所述生成模塊303接收到的所述指令響應(yīng)中獲取響應(yīng)數(shù)據(jù);
填充模塊305,用于根據(jù)所述第一獲取模塊301獲取的所述第一信息和所述第二信息、所述第二獲取模塊304獲取的所述響應(yīng)數(shù)據(jù)、所述生成模塊303生成的所述隨機(jī)數(shù)、所述計算模塊302計算出的所述待填充數(shù)值對所述二磁道信息進(jìn)行填充得到動態(tài)二磁道信息。
本實施例中,所述第一獲取模塊301包括第一獲取單元和第二獲取單元;
所述第一獲取單元,具體用于從所述卡片中獲取卡片信息;
所述第二獲取單元,具體用于根據(jù)第一預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第一信息,根據(jù)第二預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第二信息,根據(jù)第三預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取第三信息,根據(jù)第四預(yù)設(shè)標(biāo)簽值從所述卡片信息中獲取二磁道信息。
進(jìn)一步的,所述第一獲取單元包括收發(fā)子單元、判斷子單元和獲取子單元;
所述收發(fā)子單元,用于向卡片發(fā)送讀記錄指令,并接收卡片返回的讀記錄指令響應(yīng);
所述判斷子單元,用于判斷所述收發(fā)子單元接收到的所述讀記錄指令響應(yīng)的狀態(tài)碼字節(jié)是否是表示執(zhí)行成功的數(shù)值;
所述獲取子單元,用于當(dāng)所述判斷子單元的判斷結(jié)果為是時,從所述讀記錄指令響應(yīng)的數(shù)據(jù)域中獲取卡片信息;
所述終端還包括報錯模塊,用于當(dāng)所述判斷子單元的判斷結(jié)果為否時,提示獲取動態(tài)二磁道信息失敗。
進(jìn)一步的,所述終端還可以包括判斷模塊,所述判斷模塊,用于判斷所述第一獲取模塊301獲取到的所述卡片信息是否完整,具體用于判斷所述第一獲取模塊301獲取到的所述卡片信息中是否包含第一預(yù)設(shè)標(biāo)簽值、第二預(yù)設(shè)標(biāo)簽值、第三預(yù)設(shè)標(biāo)簽值和第四預(yù)設(shè)標(biāo)簽值,且各個預(yù)設(shè)標(biāo)簽值對應(yīng)有完整的tlv格式,是則所述卡片信息完整,否則所述卡片信息不完整。
所述計算模塊302,具體用于根據(jù)預(yù)設(shè)公式對所述第二信息和所述第三信息進(jìn)行計算得到待填充數(shù)值,并判斷所述待填充數(shù)值是否滿足預(yù)設(shè)條件,是則觸發(fā)所述生成模塊303,否則觸發(fā)所述報錯模塊;所述終端還包括報錯模塊,所述報錯模塊用于提示獲取動態(tài)二磁道信息失?。?/p>
所述預(yù)設(shè)公式為n=a-b,其中n是待填充數(shù)值,a是第二信息中比特位1的數(shù)量值,b是使用第三信息進(jìn)行賦值得到的數(shù)值。
優(yōu)選的,判斷所述待填充數(shù)值是否滿足預(yù)設(shè)條件具體為,判斷所述待填充數(shù)值是否大于0且小于8,是則觸發(fā)所述生成模塊,否則觸發(fā)所述報錯模塊。
優(yōu)選的,本實施例中所述二磁道信息包括主賬號區(qū)域、到期日期區(qū)域、服務(wù)碼區(qū)域和自定義數(shù)據(jù)區(qū)域。
本實施例中,所述第二獲取模塊304,具體用于根據(jù)第五預(yù)設(shè)標(biāo)簽值從所述生成模塊303接收到的所述指令響應(yīng)中獲取第一響應(yīng)數(shù)據(jù),根據(jù)第六預(yù)設(shè)標(biāo)簽值從所述指令響應(yīng)中獲取第二響應(yīng)數(shù)據(jù)。
本實施例中,所述填充模塊305包括第一填充單元、第二填充單元和第三填充單元;
所述第一填充單元,用于根據(jù)第一信息中比特位為1的數(shù)據(jù)所指示的位置,將響應(yīng)數(shù)據(jù)中包含的第一響應(yīng)數(shù)據(jù)填充到二磁道信息的自定義數(shù)據(jù)區(qū)域;優(yōu)選的,所述第一響應(yīng)數(shù)據(jù)具體為卡驗證碼,所述第二響應(yīng)數(shù)據(jù)具體為交易計數(shù)值。
所述第二填充單元,用于根據(jù)第二信息中比特位為1的數(shù)據(jù)所述指示的位置,將響應(yīng)數(shù)據(jù)中包含的第二響應(yīng)數(shù)據(jù)和所述隨機(jī)數(shù)填充到二磁道信息的自定義數(shù)據(jù)區(qū)域;
第三填充單元,用于將所述待填充數(shù)值填充到二磁道信息的低位起第一字節(jié)位置,并將填充后得到的二磁道信息作為動態(tài)二磁道信息。
所述第三填充單元,還可以具體用于判斷二磁道信息的低位起第一字節(jié)的后半字節(jié)是否是預(yù)設(shè)值,是則將所述待填充數(shù)值填充到二磁道信息的低位起第一字節(jié)的前半字節(jié)位置,否則將所述待填充數(shù)值填充到后半字節(jié)位置。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。