一種離線動(dòng)態(tài)驗(yàn)證碼生成方法
【專利摘要】本發(fā)明公開了一種離線動(dòng)態(tài)驗(yàn)證碼的生成方法,涉及信息安全認(rèn)證領(lǐng)域。所述方法包含步驟:獲取待驗(yàn)證端的ID碼和待驗(yàn)證端的系統(tǒng)時(shí)間;對(duì)獲取的待驗(yàn)證端的系統(tǒng)時(shí)間進(jìn)行預(yù)處理,實(shí)現(xiàn)設(shè)定時(shí)間間隔內(nèi)動(dòng)態(tài)碼驗(yàn)證碼的自動(dòng)更換功能;將獲取的待驗(yàn)證端的ID碼數(shù)字串與預(yù)處理后的系統(tǒng)時(shí)間數(shù)字串求和;計(jì)算求和后所得數(shù)字串的下標(biāo)變量i;根據(jù)下標(biāo)變量i截取求和后所得數(shù)字串的子數(shù)字串,此截取的子數(shù)字串即為動(dòng)態(tài)驗(yàn)證碼。本發(fā)明解決用戶在支付或者其它身份驗(yàn)證活動(dòng)時(shí)由于終端網(wǎng)絡(luò)不可接入等原因造成的不便,使得在離線狀態(tài)下即可完成支付等需要身份認(rèn)證功能的移動(dòng)業(yè)務(wù),并且能夠提高賬戶的安全。
【專利說明】一種離線動(dòng)態(tài)驗(yàn)證碼生成方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全認(rèn)證領(lǐng)域,特別是涉及一種離線動(dòng)態(tài)驗(yàn)證碼的生成方法。
【背景技術(shù)】
[0002]動(dòng)態(tài)驗(yàn)證碼是按照某種算法生成的一個(gè)數(shù)字序列,由于是按照一定的時(shí)間段實(shí)時(shí)生成動(dòng)態(tài)變化的,并且超過一定時(shí)間就失效,所以稱之為動(dòng)態(tài)驗(yàn)證碼。其廣泛應(yīng)用,可以應(yīng)用于信息安全認(rèn)證領(lǐng)域,如訂單支付、銀行帳號(hào)安全保護(hù)等。
[0003]針對(duì)用戶越來越重視的安全問題,各大公司企業(yè)都推出了自己的解決方案。
[0004]例如:某些銀行推出了動(dòng)態(tài)驗(yàn)證碼,是用于保護(hù)網(wǎng)銀用戶的賬戶安全的一種技術(shù)措施。銀行通過提供給網(wǎng)銀用戶一個(gè)便攜式終端系統(tǒng),按照規(guī)定的規(guī)則產(chǎn)生驗(yàn)證碼并與網(wǎng)銀服務(wù)器端的數(shù)據(jù)進(jìn)行核 對(duì),以保護(hù)網(wǎng)銀用戶的賬號(hào)安全。這種提供的便攜式終端系統(tǒng)雖是小巧,但會(huì)產(chǎn)生多余的系統(tǒng)費(fèi)用,且之在使用時(shí)過程中容易遺失、丟棄,這也就為后續(xù)使用帶來不便。
[0005]目前手機(jī)作為普及的通訊系統(tǒng),把手機(jī)與便攜式終端系統(tǒng)合二為一,以此作為待驗(yàn)證端不用攜帶其它的終端系統(tǒng),能為驗(yàn)證碼的認(rèn)證帶來方便;但在采用通常的手機(jī)短信驗(yàn)證碼方式時(shí),手機(jī)在無網(wǎng)絡(luò)可接入的情況下是難以完成動(dòng)態(tài)碼的接收、輸入、身份驗(yàn)證的。因此迫切的需要有一種方法能夠適應(yīng)有網(wǎng)絡(luò)和無網(wǎng)絡(luò)等情況,使得支付更方便,更安全,用戶使用更滿意。
【發(fā)明內(nèi)容】
[0006](一)要解決的技術(shù)問題
[0007]本發(fā)明所要解決的技術(shù)問題是:解決用戶在支付或者其它身份驗(yàn)證活動(dòng)時(shí)由于待驗(yàn)證端網(wǎng)絡(luò)不可接入等原因造成的不便,使得待驗(yàn)證端在離線狀態(tài)下生成動(dòng)態(tài)驗(yàn)證碼實(shí)現(xiàn)身份驗(yàn)證,即可完成支付等活動(dòng),并且能夠提高賬戶的安全。
[0008](二)技術(shù)方案
[0009]為了解決上述問題,本發(fā)明提供了一種離線動(dòng)態(tài)驗(yàn)證碼的生成方法,終端軟件在待驗(yàn)證端通過動(dòng)態(tài)驗(yàn)證碼生成方法生成動(dòng)態(tài)的驗(yàn)證碼,通過BS端交由Webservice服務(wù)器驗(yàn)證,在驗(yàn)證通過后即可進(jìn)行交易或者帳號(hào)登錄,這便完成動(dòng)態(tài)驗(yàn)證碼的作用。圖1為動(dòng)態(tài)驗(yàn)證碼的一種應(yīng)用場景。
[0010]所述離線動(dòng)態(tài)驗(yàn)證碼的生成方法是一種數(shù)字序列生成方法,生成的數(shù)字位數(shù)為可按照實(shí)際需要設(shè)定,如可設(shè)定為8位,更新間隔可按照實(shí)際需要設(shè)定,如可設(shè)定為30s。
[0011]具體包括以下步驟:
[0012]A、獲取待驗(yàn)證端的ID碼和待驗(yàn)證端的系統(tǒng)時(shí)間;
[0013]B、對(duì)步驟A中獲取的待驗(yàn)證端的系統(tǒng)時(shí)間進(jìn)行預(yù)處理,實(shí)現(xiàn)設(shè)定時(shí)間間隔內(nèi)動(dòng)態(tài)碼驗(yàn)證碼的自動(dòng)更換功能;
[0014]C、將步驟A獲取的待驗(yàn)證端的ID碼數(shù)字串與步驟B中預(yù)處理后的系統(tǒng)時(shí)間數(shù)字串求和;
[0015]D、計(jì)算步驟C中求和后所得數(shù)字串的下標(biāo)變量i ;
[0016]E、根據(jù)步驟D中下標(biāo)變量i截取步驟C中求和后所得數(shù)字串的子數(shù)字串,此截取的子數(shù)字串即為動(dòng)態(tài)驗(yàn)證碼。
[0017]其中步驟A中具體包含以下步驟:
[0018]Al、獲取所述待驗(yàn)證端的ID碼,存儲(chǔ)到變量k中;獲取所述待驗(yàn)證端的系統(tǒng)時(shí)間,存儲(chǔ)到變量t中;
[0019]A2、當(dāng)步驟Al中存儲(chǔ)到變量k中的ID碼的數(shù)字串位數(shù)> 14時(shí),從后向前截取η位數(shù)字串,η ( 14,將這η位數(shù)字串再次存儲(chǔ)到變量k中;
[0020]A3、將步驟Al中存儲(chǔ)到變量t中的系統(tǒng)時(shí)間的數(shù)字串從后向前截取η位數(shù)字串,η ( 14,將這η位數(shù)字串存儲(chǔ)到變量tl中。
[0021]其中步驟B中具體包含以下步驟:
[0022]B1、截取變量tl中所存儲(chǔ)的系統(tǒng)時(shí)間數(shù)字串的最后兩位值,將此值存儲(chǔ)到變量temp中;將變量temp與30比較,判斷的結(jié)果存儲(chǔ)到變量flag中,大于或等于30時(shí)變量flag的值為真,小于30時(shí)變量flag的值為假;
[0023]B2、取步驟BI的變量flag,當(dāng)flag值為真時(shí),將變量temp值重置為30 ;當(dāng)flag值為假時(shí),將變量temp值重置為00 ;
[0024]B3、截取變量tl中的前n-2位數(shù)字串,將此值存儲(chǔ)到變量tempi中,將步驟B2中重置后temp中的兩位數(shù)字串置于tempi后,得到η位的數(shù)字串;將此η位數(shù)字串存儲(chǔ)到變量t2中。
[0025]其中步驟C中具體包含以下步驟:
[0026]Cl、將變量k和t2中的數(shù)字串分別從最低位依次取對(duì)應(yīng)的每位數(shù)值,然后求和,若求和結(jié)果大于9則置變量carryflag為真,小于或等于9時(shí)則置變量carryflag為假;并將當(dāng)前位的數(shù)值置為每位求和結(jié)果的個(gè)位數(shù);
[0027]C2、按照步驟Cl對(duì)應(yīng)位求和并且每位求和前都判斷carryflag是否為真,若為真則在當(dāng)前位取和時(shí)加1,最高位求和進(jìn)位不考慮;將數(shù)字串K和T2的求和值置于變量s中。
[0028]其中步驟D中具體包含以下步驟:
[0029]D1、截取變量 s中η位數(shù)字串中的最后m位數(shù)字,分別存儲(chǔ)到變量sl、s2到sm中,m ^ η ;
[0030]D2、將步驟Dl中的m位變量s1、s2到sm求和;
[0031]D3、截取步驟D2中的求和值的個(gè)位數(shù)值,將其存儲(chǔ)于下標(biāo)變量i中。
[0032]其中步驟E中具體包含以下步驟:
[0033]E1、對(duì)變量s中的數(shù)字串從左到右數(shù)到下標(biāo)變量i位,即從第i位開始截取子數(shù)字串;
[0034]E2、在從變量s中自第i位開始截取子數(shù)字串時(shí),若到串尾,不夠子數(shù)字串的位數(shù)時(shí),則循環(huán)回串首繼續(xù)截取。
[0035]此刻截取到的子數(shù)字串即為動(dòng)態(tài)驗(yàn)證碼。
[0036](三)有益效果
[0037]本發(fā)明動(dòng)態(tài)驗(yàn)證碼的生成方法并不十分復(fù)雜,但破解難度較高,安全性高;并且待驗(yàn)證端上安裝終端軟件后,以此作為便攜移動(dòng)終端系統(tǒng),使用時(shí)根據(jù)待驗(yàn)證端ID碼和系統(tǒng)時(shí)間就可產(chǎn)生動(dòng)態(tài)驗(yàn)證碼,在待驗(yàn)證端有信號(hào)或無信號(hào)離線狀態(tài)照樣使用。將產(chǎn)生的驗(yàn)證碼手動(dòng)輸入到BS端,待同webservice服務(wù)器驗(yàn)證,匹配的話即驗(yàn)證通過,這樣很大程度上給用戶的支付或者其它身份驗(yàn)證活動(dòng)時(shí)提供方便。
【專利附圖】
【附圖說明】
[0038]圖1為動(dòng)態(tài)驗(yàn)證碼的一種應(yīng)用場景;
[0039]圖2為離線動(dòng)態(tài)驗(yàn)證碼的生成方法流程圖。
【具體實(shí)施方式】
[0040]下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步詳細(xì)描述。以下實(shí)施例適于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
[0041]本實(shí)施例以 手機(jī)端為待驗(yàn)證端,需獲取的ID碼為手機(jī)號(hào)碼
[0042]圖2是離線動(dòng)態(tài)驗(yàn)證碼的生成方法流程圖,如圖2所示,所述方法包括如下步驟:
[0043]步驟SlOO:獲取待驗(yàn)證端的ID碼和待驗(yàn)證端的系統(tǒng)時(shí)間。
[0044]此種生成驗(yàn)證碼的方法是基于待驗(yàn)證端的手機(jī)號(hào)碼和系統(tǒng)時(shí)間這兩個(gè)數(shù)字序列。
[0045]獲取待驗(yàn)證端的手機(jī)號(hào)碼,存儲(chǔ)到變量k中。
[0046]如ID碼數(shù)字串多于14位,因?yàn)闀r(shí)間的數(shù)字串只有14位,此時(shí)對(duì)η的取值需要≤14方可。此時(shí)就需要分別對(duì)變量k和t中的字符串進(jìn)行截取η位,將這η位數(shù)字串存儲(chǔ)到變量k和tl中。
[0047]如ID碼數(shù)字串少于14位,η值可以為此ID碼數(shù)字串的位數(shù),此時(shí)值只需要對(duì)系統(tǒng)時(shí)間進(jìn)行截取η位。
[0048]例如手機(jī)號(hào)碼為12345678901,因?yàn)槭謾C(jī)號(hào)碼是11位的數(shù)字串,此時(shí)η的取值可為11,即變量k中存儲(chǔ)的為11位數(shù)字串;
[0049]獲取待驗(yàn)證端的系統(tǒng)時(shí)間,存儲(chǔ)到變量t中,例如時(shí)間為2012年11月10日11點(diǎn)23分12秒,則系統(tǒng)時(shí)間的原始數(shù)字序列為20121110112312的14位數(shù)字串;
[0050]終端軟件默認(rèn)的系統(tǒng)時(shí)間為標(biāo)準(zhǔn)時(shí)間,以此和BS服務(wù)器端時(shí)間相一致。
[0051]由于η取值為11,設(shè)定將系統(tǒng)時(shí)間數(shù)字串從后向前截取11位,此刻截取后的時(shí)間數(shù)字串為21110112312,這個(gè)即是tl的值;
[0052]步驟S200:對(duì)步驟SlOO獲取的待驗(yàn)證端的系統(tǒng)時(shí)間進(jìn)行預(yù)處理,實(shí)現(xiàn)設(shè)定時(shí)間間隔內(nèi)動(dòng)態(tài)碼驗(yàn)證碼的自動(dòng)更換功能;。
[0053]獲得手機(jī)號(hào)碼和系統(tǒng)時(shí)間這兩項(xiàng)本算法的輸入數(shù)據(jù)后,需要進(jìn)行系統(tǒng)時(shí)間預(yù)處理,以此來實(shí)現(xiàn)給定時(shí)間間隔內(nèi)動(dòng)態(tài)碼的自動(dòng)更換功能;
[0054]該動(dòng)態(tài)碼的自動(dòng)更換的時(shí)間間隔可依據(jù)實(shí)際應(yīng)用在30-60秒之間動(dòng)態(tài)設(shè)定,本實(shí)施例的自動(dòng)更換時(shí)間間隔為30秒。
[0055]判斷系統(tǒng)時(shí)間數(shù)字串的秒數(shù)值:
[0056]取出之前存儲(chǔ)的時(shí)間串t,判斷其秒數(shù)值,即最后兩位的值12,將此值取出存為另一變量temp,將其與30比較,判斷出的結(jié)果大于、等于或小于存儲(chǔ)到變量flag中,大于或等于時(shí)flag的值為真,小于時(shí)flag的值為假;[0057]重置系統(tǒng)時(shí)間數(shù)字串的秒數(shù)值:
[0058]取出變量flag,若flag是真,即秒數(shù)值大于等于30,則置秒數(shù)值為30 ;若flag為假,即秒數(shù)值小于30,則置秒數(shù)值為00 ;此例中置位后的秒數(shù)值為00 ;
[0059]獲取新的系統(tǒng)時(shí)間數(shù)字串:
[0060]在判斷時(shí)間串秒數(shù)值后,重新組裝系統(tǒng)時(shí)間串。此過程需要以下幾步:
[0061]從時(shí)間串t中截取除兩位秒數(shù)值外的n-2位即9位字符串211101123,將此值存儲(chǔ)到變量tempi中;
[0062]將重置后temp中的兩位數(shù)字串置于tempi后面,即得21110112300 ;
[0063]將調(diào)整后的系統(tǒng)時(shí)間21110112300存儲(chǔ)到t2中。
[0064]步驟S300:將步驟SlOO中獲取的待驗(yàn)證端的手機(jī)號(hào)碼數(shù)字串與步驟S200中調(diào)整后的系統(tǒng)時(shí)間數(shù)字求和。
[0065]將變量k和t2中的數(shù)字串分別從最低位依次取對(duì)應(yīng)的每位數(shù)值,然后求和,若求和結(jié)果大于9則置變量carryflag為真,小于或等于9時(shí)則置變量carryflag為假;并將當(dāng)前位的數(shù)值置為每位求和結(jié)果的個(gè)位數(shù)。 [0066]按照步驟S300對(duì)應(yīng)位求和并且每位求和前都判斷carryflag是否為真,若為真則在當(dāng)前位取和時(shí)加1,最高位求和進(jìn)位不考慮;將數(shù)字串k和t2的求和值置于變量s中;此時(shí)便得到手機(jī)號(hào)碼和系統(tǒng)時(shí)間的求和值S,即33455791201 ;
[0067]步驟S400:計(jì)算截取步驟S300中求和后所得數(shù)字串s的下標(biāo)變量i。
[0068]由于生成的子數(shù)字串位數(shù)為可按照實(shí)際需要在1-η之間設(shè)定,此處為1-11之間設(shè)定,如本實(shí)施例可設(shè)定為8位,故需要對(duì)11位的s數(shù)字串進(jìn)行截取,i即為截取的子字符串在s串中的開始下標(biāo);
[0069]取出之前存儲(chǔ)到s中的求和值33455791201,從最低位開始依次取后m位,分別存到m個(gè)變量中,通常只要滿足m≤η即可,此處優(yōu)選m=4,即選擇后四位,分別為是si為1,s2 為 2,s3 為 0,s4 為 I ;
[0070]將所取的四個(gè)位數(shù)求和,本實(shí)施例中即和為4 ;
[0071]對(duì)上一步求和的結(jié)果截取個(gè)位數(shù),此例為4,存儲(chǔ)為變量i中;
[0072]步驟S500:截取子數(shù)字串,獲得驗(yàn)證碼的步驟;
[0073]本實(shí)施例截取的子數(shù)字串優(yōu)選為8位。
[0074]在獲得求和值S和截取下標(biāo)i后,即可進(jìn)行字串截??;
[0075]以i為下標(biāo),從左往右數(shù)到第i位,從第i位開始截取8位;
[0076]在截取時(shí)若到串尾,則循環(huán)回串首繼續(xù)。對(duì)本例S33455791201截取,i為4,即從第4位開始截取,截取結(jié)果為55791201。
[0077]在完成以上的步驟后,便達(dá)到了該算法的目的,獲得驗(yàn)證碼55791201。
[0078]此驗(yàn)證碼不依賴于待驗(yàn)證端的網(wǎng)絡(luò)情況,如此按以上五個(gè)步驟執(zhí)行后,所得的動(dòng)態(tài)驗(yàn)證碼便是可離線產(chǎn)生的動(dòng)態(tài)驗(yàn)證碼。
[0079]以上實(shí)施方式僅適于說明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)【技術(shù)領(lǐng)域】的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
【權(quán)利要求】
1.一種離線動(dòng)態(tài)驗(yàn)證碼的生成方法,其特征在于,包括以下步驟: A、獲取待驗(yàn)證端的ID碼和待驗(yàn)證端的系統(tǒng)時(shí)間; B、對(duì)步驟A中獲取的待驗(yàn)證端的系統(tǒng)時(shí)間進(jìn)行預(yù)處理,實(shí)現(xiàn)設(shè)定時(shí)間間隔內(nèi)動(dòng)態(tài)碼驗(yàn)證碼的自動(dòng)更換功能; C、將步驟A獲取的待驗(yàn)證端的ID碼數(shù)字串與步驟B中預(yù)處理后的系統(tǒng)時(shí)間數(shù)字串求和; D、計(jì)算步驟C中求和后所得數(shù)字串的下標(biāo)變量i; E、根據(jù)步驟D中下標(biāo)變量i截取步驟C中求和后所得數(shù)字串的子數(shù)字串,此截取的子數(shù)字串即為動(dòng)態(tài)驗(yàn)證碼。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟A中具體包含以下步驟: Al、獲取所述待驗(yàn)證端的ID碼,存儲(chǔ)到變量k中;獲取所述待驗(yàn)證端的系統(tǒng)時(shí)間,存儲(chǔ)到變量t中; A2、當(dāng)步驟Al中存儲(chǔ)到變量k中的ID碼的數(shù)字串位數(shù)> 14時(shí),從后向前截取η位數(shù)字串,14,將這η位數(shù)字串再次存儲(chǔ)到變量k中; A 3、將步驟AI中存儲(chǔ)到變量t中的系統(tǒng)時(shí)間的數(shù)字串從后向前截取η位數(shù)字串,n ^ 14,將這η位數(shù)字串 存儲(chǔ)到變量tl中。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟B中具體包含以下步驟: B1、截取變量tl中所存儲(chǔ)的系統(tǒng)時(shí)間數(shù)字串的最后兩位值,將此值存儲(chǔ)到變量temp中;將變量temp與30比較,判斷的結(jié)果存儲(chǔ)到變量flag中,大于或等于30時(shí)變量flag的值為真,小于30時(shí)變量flag的值為假; B2、取步驟BI的變量flag,當(dāng)flag值為真時(shí),將變量temp值重置為30 ;當(dāng)flag值為假時(shí),將變量temp值重置為00 ; B3、截取變量tl中的前n-2位數(shù)字串,將此值存儲(chǔ)到變量tempi中,將步驟B2中重置后temp中的兩位數(shù)字串置于tempi后,得到η位的數(shù)字串;將此η位數(shù)字串存儲(chǔ)到變量t2中。
4.如權(quán)利要求1所述的方法,其特征在于,所述步驟C中具體包含以下步驟: Cl、將變量k和t2中的數(shù)字串分別從最低位依次取對(duì)應(yīng)的每位數(shù)值,然后求和,若求和結(jié)果大于9則置變量carryflag為真,小于或等于9時(shí)則置變量carryflag為假;并將當(dāng)前位的數(shù)值置為每位求和結(jié)果的個(gè)位數(shù); C2、按照步驟Cl對(duì)應(yīng)位求和并且每位求和前都判斷carryflag是否為真,若為真則在當(dāng)前位取和時(shí)加1,最高位求和進(jìn)位不考慮;將數(shù)字串k和k2的求和值置于變量s中。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟D中具體包含以下步驟: D1、截取變量s中η位數(shù)字串中的最后m位數(shù)字,分別存儲(chǔ)到變量S1、s2到sm中,m ^ η ; D2、將步驟Dl中的m位變量S1、s2到sm求和; D3、截取步驟D2中的求和值的個(gè)位數(shù)值,將其存儲(chǔ)于下標(biāo)變量i中。
6.如權(quán)利要求1所述的方法,其特征在于,所述步驟E中具體包含以下步驟: E1、對(duì)變量s中的數(shù)字串從左到右數(shù)到下標(biāo)變量i位,即從第i位開始截取子數(shù)字串; E2、在從變量s中自第i位開始截取子數(shù)字串時(shí),若到串尾,不夠子數(shù)字串位數(shù)時(shí),則循環(huán)回串首繼續(xù)截取。
【文檔編號(hào)】H04L9/32GK104022873SQ201310064407
【公開日】2014年9月3日 申請(qǐng)日期:2013年2月28日 優(yōu)先權(quán)日:2013年2月28日
【發(fā)明者】李沁, 王曉亮 申請(qǐng)人:北京網(wǎng)河時(shí)代科技有限公司