一種實(shí)現(xiàn)瀏覽器倒計(jì)時(shí)的方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種實(shí)現(xiàn)瀏覽器倒計(jì)時(shí)的方法,屬于信息安全領(lǐng)域。所述方法包括:當(dāng)加載倒計(jì)時(shí)頁(yè)面時(shí),倒計(jì)時(shí)頁(yè)面執(zhí)行:A、將發(fā)送按鈕置不可用,判斷是否能從cookie中獲取到時(shí)間值,是則B,否則D;B、根據(jù)獲取的當(dāng)前系統(tǒng)時(shí)間、時(shí)間值和載入的倒計(jì)時(shí)時(shí)間,得到仍需倒計(jì)時(shí)的時(shí)間,判斷是否處于倒計(jì)時(shí)狀態(tài),是則C,否則D;C、調(diào)用倒計(jì)時(shí)函數(shù),更新并顯示仍需倒計(jì)時(shí)的時(shí)間,判斷是否結(jié)束倒計(jì)時(shí),是則D,否則C;D、將發(fā)送按鈕置可用,當(dāng)檢測(cè)到發(fā)送按鈕被按下時(shí),生成口令請(qǐng)求并發(fā)給服務(wù)器,將發(fā)送按鈕置不可用,更新時(shí)間值,返回B。采用本發(fā)明的方案,在瀏覽器刷新或重新打開(kāi)后,仍可執(zhí)行正常倒計(jì)時(shí)業(yè)務(wù),并實(shí)現(xiàn)短信令牌的功能。
【專(zhuān)利說(shuō)明】一種實(shí)現(xiàn)瀏覽器倒計(jì)時(shí)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種實(shí)現(xiàn)瀏覽器倒計(jì)時(shí)的方法。
【背景技術(shù)】
[0002]瀏覽器是顯示網(wǎng)頁(yè)服務(wù)器或檔案系統(tǒng)內(nèi)的文件,并讓用戶(hù)與此些文件互動(dòng)的一種軟件,用來(lái)顯示萬(wàn)維網(wǎng)或局域網(wǎng)等的文字、影像或用于連接其他網(wǎng)絡(luò)的超鏈接。
[0003]cookie,有時(shí)也用其復(fù)數(shù)cookies,指某些網(wǎng)站為了辨別用戶(hù)身份、進(jìn)行session跟蹤而儲(chǔ)存在用戶(hù)本地終端上的數(shù)據(jù),通常是經(jīng)過(guò)加密的數(shù)據(jù)。
[0004]在現(xiàn)有技術(shù)中,瀏覽器使用window, setlnterval (表達(dá)式,延時(shí)時(shí)間)做倒計(jì)時(shí)處理,該函數(shù)的意義是讓瀏覽器定時(shí)執(zhí)行一些設(shè)定好的函數(shù)代碼,例如,window, setlnterval(‘a(chǎn)bc’,3000),即瀏覽器每間隔3秒則執(zhí)行一次abc,但此種方式在瀏覽器刷新或重新打開(kāi)后,倒計(jì)時(shí)會(huì)失效。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中存在的問(wèn)題,提供了一種實(shí)現(xiàn)瀏覽器倒計(jì)時(shí)的方法。
[0006]本發(fā)明采用的技術(shù)方案是:一種實(shí)現(xiàn)瀏覽器倒計(jì)時(shí)的方法,包括:當(dāng)加載倒計(jì)時(shí)頁(yè)面時(shí),所述倒計(jì)時(shí)頁(yè)面執(zhí)行以下操作:
[0007]步驟S1:所述倒計(jì)時(shí)頁(yè)面初始化,將發(fā)送按鈕置為不可用狀態(tài);
[0008]步驟S2:所述倒計(jì)時(shí)頁(yè)面載入倒計(jì)時(shí)時(shí)間;
[0009]步驟S3:所述倒計(jì)時(shí)頁(yè)面判斷是否能夠從cookie中獲取到時(shí)間值,是則獲取當(dāng)前系統(tǒng)時(shí)間,執(zhí)行步驟S4,否則執(zhí)行步驟S7 ;
[0010]步驟S4:所述倒計(jì)時(shí)頁(yè)面根據(jù)當(dāng)前系統(tǒng)時(shí)間、所述時(shí)間值和所述倒計(jì)時(shí)時(shí)間,得到仍需倒計(jì)時(shí)的時(shí)間,根據(jù)所述仍需倒計(jì)時(shí)的時(shí)間,判斷是否處于倒計(jì)時(shí)狀態(tài),是則執(zhí)行步驟S5,否則執(zhí)行步驟S7 ;
[0011]步驟S5:所述倒計(jì)時(shí)頁(yè)面調(diào)用倒計(jì)時(shí)函數(shù),根據(jù)所述倒計(jì)時(shí)函數(shù),更新所述仍需倒計(jì)時(shí)的時(shí)間;
[0012]步驟S6:所述倒計(jì)時(shí)頁(yè)面顯示所述仍需倒計(jì)時(shí)的時(shí)間,根據(jù)所述仍需倒計(jì)時(shí)的時(shí)間,判斷是否結(jié)束倒計(jì)時(shí),如果是,則執(zhí)行步驟S7,否則返回步驟S5 ;
[0013]步驟S7:所述倒計(jì)時(shí)頁(yè)面將所述發(fā)送按鈕置為可用狀態(tài);
[0014]步驟S8:當(dāng)所述倒計(jì)時(shí)頁(yè)面檢測(cè)到所述發(fā)送按鈕被按下時(shí),生成口令請(qǐng)求,將所述口令請(qǐng)求發(fā)送給服務(wù)器,將所述發(fā)送按鈕置為不可用狀態(tài),并獲取當(dāng)前系統(tǒng)時(shí)間,根據(jù)所述當(dāng)前系統(tǒng)時(shí)間更新cookie中的時(shí)間值,返回執(zhí)行步驟S4。
[0015]所述步驟S2中,所述倒計(jì)時(shí)時(shí)間為預(yù)設(shè)時(shí)間,或用戶(hù)根據(jù)需求而設(shè)置的時(shí)間。
[0016]所述步驟S3中,所述判斷是否能夠從cookie中獲取到時(shí)間值,具體為:
[0017]步驟S3-1:所述倒計(jì)時(shí)頁(yè)面調(diào)用獲取時(shí)間值函數(shù),根據(jù)傳入的時(shí)間值屬性名,獲取需要讀取的時(shí)間值,將所述時(shí)間值屬性名的長(zhǎng)度與第一預(yù)設(shè)字符的長(zhǎng)度之和作為第一長(zhǎng)度,將所述時(shí)間值屬性名的字符和所述第一預(yù)設(shè)字符的組合作為組合字符;
[0018]步驟S3-2:所述倒計(jì)時(shí)頁(yè)面從cookie的第一個(gè)字符開(kāi)始,獲取長(zhǎng)度為所述第一長(zhǎng)度的字符串,將所述字符串作為當(dāng)前字符串;
[0019]步驟S3-3:所述倒計(jì)時(shí)頁(yè)面判斷當(dāng)前字符串與所述組合字符是否相同,如果是,則執(zhí)行步驟S3-4,否則執(zhí)行步驟S3-7 ;
[0020]步驟S3-4:所述倒計(jì)時(shí)頁(yè)面調(diào)用檢索函數(shù),判斷是否能夠查找到當(dāng)前字符串后的首個(gè)第二預(yù)設(shè)字符,如果是,則執(zhí)行步驟S3-5,否則執(zhí)行步驟S3-6 ;
[0021]步驟S3-5:所述倒計(jì)時(shí)頁(yè)面獲取所述當(dāng)前字符串與所述第二預(yù)設(shè)字符之間的字符串,作為需要讀取的時(shí)間值,執(zhí)行步驟S4 ;
[0022]步驟S3-6:所述倒計(jì)時(shí)頁(yè)面獲取當(dāng)前字符串后的所有字符串,作為需要讀取的時(shí)間值,執(zhí)行步驟S4 ;
[0023]步驟S3-7:所述倒計(jì)時(shí)頁(yè)面調(diào)用檢索函數(shù),查找當(dāng)前字符串后的首個(gè)第三預(yù)設(shè)字符;
[0024]步驟S3-8:所述倒計(jì)時(shí)頁(yè)面判斷是否還有未處理的字符,如果是,則執(zhí)行步驟S3-9,否則未找到需要讀取的時(shí)間值,執(zhí)行步驟S7 ;
[0025]步驟S3-9:所述倒計(jì)時(shí)頁(yè)面從當(dāng)前字符串后的首個(gè)第三預(yù)設(shè)字符后的第一個(gè)字符開(kāi)始,獲取長(zhǎng)度為所述第一長(zhǎng)度的字符串,將獲取到的所述字符串作為當(dāng)前字符串,返回步驟S3-3。
[0026]所述步驟S3之前還包括:所述倒計(jì)時(shí)頁(yè)面判斷是否能夠獲取到cookie,如果是,則執(zhí)行步驟S3,否則所述倒計(jì)時(shí)頁(yè)面將所述發(fā)送按鈕置為可用狀態(tài),當(dāng)檢測(cè)到所述發(fā)送按鈕被按下時(shí),創(chuàng)建cookie,并獲取當(dāng)前系統(tǒng)時(shí)間,將該當(dāng)前系統(tǒng)時(shí)間作為時(shí)間值記錄在cookie中,執(zhí)行步驟S4。
[0027]所述步驟S4,具體為:所述倒計(jì)時(shí)頁(yè)面計(jì)算所述時(shí)間值與所述倒計(jì)時(shí)時(shí)間的和,再與當(dāng)前系統(tǒng)時(shí)間的差值,將所述差值作為仍需倒計(jì)時(shí)的時(shí)間,判斷所述差值是否大于0,如果是,則執(zhí)行步驟S5,否則執(zhí)行步驟S7。
[0028]所述步驟S4,具體為:所述倒計(jì)時(shí)頁(yè)面計(jì)算當(dāng)前系統(tǒng)時(shí)間減去所述時(shí)間值再減去倒計(jì)時(shí)時(shí)間的差值,將所述差值作為仍需倒計(jì)時(shí)的時(shí)間,判斷所述差值是否小于0,如果是,則執(zhí)行步驟S5,否則執(zhí)行步驟S7。
[0029]所述步驟S6中,所述顯示所述仍需倒計(jì)時(shí)的時(shí)間,具體為:所述倒計(jì)時(shí)頁(yè)面在所述發(fā)送按鈕的位置顯示所述仍需倒計(jì)時(shí)的時(shí)間。
[0030]所述步驟S6中,所述根據(jù)所述仍需倒計(jì)時(shí)的時(shí)間,判斷是否結(jié)束倒計(jì)時(shí),具體為:判斷所述仍需倒計(jì)時(shí)的時(shí)間是否等于0,如果是,則執(zhí)行步驟S7,否則返回步驟S5。
[0031]所述步驟S7,還包括:當(dāng)所述倒計(jì)時(shí)頁(yè)面檢測(cè)到鼠標(biāo)光標(biāo)放置在所述發(fā)送按鈕上時(shí),將所述發(fā)送按鈕的邊緣寬度設(shè)置為第一預(yù)設(shè)寬度,將所述發(fā)送按鈕的邊緣線(xiàn)設(shè)置為第一預(yù)設(shè)類(lèi)型,將所述發(fā)送按鈕的字體顏色設(shè)置為第一預(yù)設(shè)顏色,將所述發(fā)送按鈕的背景色設(shè)置為第一預(yù)設(shè)背景色。
[0032]所述步驟S7,還包括:當(dāng)所述倒計(jì)時(shí)頁(yè)面檢測(cè)到鼠標(biāo)光標(biāo)移開(kāi)所述發(fā)送按鈕時(shí),將所述發(fā)送按鈕的邊緣寬度設(shè)置為第二預(yù)設(shè)寬度,將所述發(fā)送按鈕的邊緣線(xiàn)設(shè)置為第二預(yù)設(shè)類(lèi)型,將所述發(fā)送按鈕的字體顏色設(shè)置為第二預(yù)設(shè)顏色,將所述發(fā)送按鈕的背景色設(shè)置為第二預(yù)設(shè)背景色。
[0033]所述步驟S8中,所述生成口令請(qǐng)求,具體為:所述倒計(jì)時(shí)頁(yè)面判斷是否接收到用戶(hù)輸入的用戶(hù)名,如果是,則根據(jù)所述用戶(hù)名,生成口令請(qǐng)求,否則提示用戶(hù)名不能為空,結(jié)束。
[0034]所述步驟S8中,所述將所述口令請(qǐng)求發(fā)送給服務(wù)器之后,所述服務(wù)器執(zhí)行以下操作:
[0035]步驟al:所述服務(wù)器接收到所述口令請(qǐng)求后,獲取所述口令請(qǐng)求中的用戶(hù)名;
[0036]步驟a2:所述服務(wù)器根據(jù)所述用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中查找與所述用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),并判斷是否能夠找到與所述用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),如果是,則執(zhí)行步驟a3,否則向所述倒計(jì)時(shí)頁(yè)面返回未綁定的響應(yīng),結(jié)束;
[0037]步驟a3:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取令牌類(lèi)型,如果是硬件令牌類(lèi)型,則向所述倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng),結(jié)束,如果是短信令牌類(lèi)型,則執(zhí)行步驟a4 ;
[0038]步驟a4:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取與所述用戶(hù)名對(duì)應(yīng)的令牌種子;
[0039]步驟a5:所述服務(wù)器應(yīng)用預(yù)設(shè)算法,根據(jù)所述令牌種子,生成動(dòng)態(tài)口令;
[0040]步驟a6:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取與所述用戶(hù)名對(duì)應(yīng)的手機(jī)號(hào);
[0041]步驟a7:所述服務(wù)器通過(guò)短信平臺(tái),向所述手機(jī)號(hào)發(fā)送所述動(dòng)態(tài)口令。
[0042]所述步驟S8中,所述生成口令請(qǐng)求,具體為:所述倒計(jì)時(shí)頁(yè)面判斷是否接收到用戶(hù)輸入的用戶(hù)名和挑戰(zhàn)值,如果是,則根據(jù)所述用戶(hù)名和所述挑戰(zhàn)值,生成口令請(qǐng)求,否則提示用戶(hù)名或挑戰(zhàn)值不能為空,結(jié)束。
[0043]所述步驟S8中,將所述口令請(qǐng)求發(fā)送給服務(wù)器后,所述服務(wù)器執(zhí)行以下操作:
[0044]步驟bl:所述服務(wù)器接收到所述口令請(qǐng)求后,獲取所述口令請(qǐng)求中的用戶(hù)名和挑戰(zhàn)值;
[0045]步驟b2:所述服務(wù)器根據(jù)所述用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中查找與所述用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),并判斷是否能夠找到與所述用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),如果是,則執(zhí)行步驟b3,否則向所述倒計(jì)時(shí)頁(yè)面返回未綁定的響應(yīng),結(jié)束;
[0046]步驟b3:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取令牌類(lèi)型,如果是硬件令牌類(lèi)型,則向所述倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng),結(jié)束,如果是短信令牌類(lèi)型,執(zhí)行步驟b4 ;
[0047]步驟b4:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取與所述用戶(hù)名對(duì)應(yīng)的令牌種子;
[0048]步驟b5:所述服務(wù)器應(yīng)用預(yù)設(shè)算法,根據(jù)所述令牌種子和所述挑戰(zhàn)值,生成應(yīng)答值;
[0049]步驟b6:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取與所述用戶(hù)名對(duì)應(yīng)的手機(jī)號(hào);
[0050]步驟b7:所述服務(wù)器通過(guò)短信平臺(tái),向所述手機(jī)號(hào)發(fā)送所述應(yīng)答值。[0051]所述向所述倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng)后,還包括:所述倒計(jì)時(shí)頁(yè)面接收到所述服務(wù)器返回的硬件令牌響應(yīng)后,顯示輸入硬件令牌口令的信息。
[0052]所述向所述手機(jī)號(hào)發(fā)送所述動(dòng)態(tài)口令后,還包括:所述服務(wù)器獲取當(dāng)前服務(wù)器時(shí)間,將所述用戶(hù)名和所述當(dāng)前服務(wù)器時(shí)間寫(xiě)入服務(wù)器日志中。
[0053]所述向所述手機(jī)號(hào)發(fā)送所述應(yīng)答值后,還包括:所述服務(wù)器獲取當(dāng)前服務(wù)器時(shí)間,將所述用戶(hù)名、挑戰(zhàn)值和所述當(dāng)前服務(wù)器時(shí)間寫(xiě)入服務(wù)器日志中。
[0054]本發(fā)明取得的有益效果是:采用本發(fā)明的方案,在瀏覽器刷新或重新打開(kāi)后,仍可執(zhí)行正常倒計(jì)時(shí)業(yè)務(wù),服務(wù)器對(duì)口令請(qǐng)求進(jìn)行處理,實(shí)現(xiàn)短信令牌的功能。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0055]為了更清楚的說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0056]圖1是本發(fā)明實(shí)施例1提供的一種實(shí)現(xiàn)瀏覽器倒計(jì)時(shí)的方法流程圖;
[0057]圖2是本發(fā)明實(shí)施例1中步驟105的具體細(xì)化圖;
[0058]圖3是本發(fā)明實(shí)施例2提供的一種服務(wù)器對(duì)口令請(qǐng)求的處理流程圖;
[0059]圖4是本發(fā)明實(shí)施例3提供的一種服務(wù)器對(duì)口令請(qǐng)求的處理流程圖。
【具體實(shí)施方式】
[0060]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0061]實(shí)施例1
[0062]本發(fā)明實(shí)施例1提供了一種實(shí)現(xiàn)瀏覽器倒計(jì)時(shí)的方法,如圖1所示,包括:
[0063]當(dāng)加載倒計(jì)時(shí)頁(yè)面時(shí),倒計(jì)時(shí)頁(yè)面執(zhí)行以下操作:
[0064]步驟101:倒計(jì)時(shí)頁(yè)面初始化,將發(fā)送按鈕置為不可用狀態(tài);
[0065]其中,將發(fā)送按鈕置為不可用狀態(tài),具體為:將發(fā)送按鈕置為disable狀態(tài);
[0066]步驟102:倒計(jì)時(shí)頁(yè)面載入倒計(jì)時(shí)時(shí)間;
[0067]本實(shí)施例中,倒計(jì)時(shí)時(shí)間可以為預(yù)設(shè)時(shí)間,還可以為用戶(hù)根據(jù)需求而設(shè)置的時(shí)間,優(yōu)選的,當(dāng)?shù)褂?jì)時(shí)時(shí)間為用戶(hù)根據(jù)需求設(shè)置的時(shí)間時(shí),倒計(jì)時(shí)時(shí)間需小于cookie的生命周期;
[0068]其中,倒計(jì)時(shí)頁(yè)面載入倒計(jì)時(shí)時(shí)間,具體為:倒計(jì)時(shí)頁(yè)面通過(guò)java腳本從后臺(tái)配置信息中讀取倒計(jì)時(shí)時(shí)間;
[0069]例如,本實(shí)施例中,倒計(jì)時(shí)頁(yè)面載入的倒計(jì)時(shí)時(shí)間為60s,即60000ms ;
[0070]步驟103:倒計(jì)時(shí)頁(yè)面判斷是否能夠獲取到cookie,如果是,則執(zhí)行步驟105,否則執(zhí)行步驟104 ;
[0071]步驟104:倒計(jì)時(shí)頁(yè)面將發(fā)送按鈕置為可用狀態(tài),當(dāng)檢測(cè)到發(fā)送按鈕被按下時(shí),創(chuàng)建cookie,并獲取當(dāng)前系統(tǒng)時(shí)間,將當(dāng)前系統(tǒng)時(shí)間作為時(shí)間標(biāo)記記錄在cookie中,執(zhí)行步驟 107 ;
[0072]步驟105:倒計(jì)時(shí)頁(yè)面判斷是否能夠從cookie中獲取到時(shí)間值,如果是,則執(zhí)行步驟106,否則執(zhí)行步驟111;
[0073]參見(jiàn)圖2,本實(shí)施例中,判斷是否能夠從cookie中獲取到時(shí)間值,具體為:
[0074]步驟105-1:倒計(jì)時(shí)頁(yè)面調(diào)用獲取時(shí)間值函數(shù),根據(jù)傳入的參數(shù)時(shí)間值屬性名獲取需要讀取的時(shí)間值,將時(shí)間值屬性名的長(zhǎng)度與第一預(yù)設(shè)字符的長(zhǎng)度之和,作為第一長(zhǎng)度,將時(shí)間值屬性名的字符和第一預(yù)設(shè)字符的組合作為組合字符;
[0075]具體為,倒計(jì)時(shí)頁(yè)面調(diào)用獲取時(shí)間值函數(shù)function getTimeMark(timemark),根據(jù)傳入的參數(shù)時(shí)間值屬性名(timemark)獲取需要讀取的時(shí)間值;
[0076]其中,第一預(yù)設(shè)字符為“ = ”,本實(shí)施例中,傳入的參數(shù)為timemark,長(zhǎng)度為8,則第一長(zhǎng)度為9,組合字符為“timemark=” ;
[0077]例如,cookie為:JESS10NID=54A512288A46"8B79C4BCFBFE5D8626 ; timemark=1387261920000。
[0078]步驟105-2:倒計(jì)時(shí)頁(yè)面從cookie的第一個(gè)字符開(kāi)始,獲取長(zhǎng)度為第一長(zhǎng)度的字符串,將該字符串作為當(dāng)前字符串;
[0079]例如,從cookie的第一個(gè)字符J開(kāi)始,獲取長(zhǎng)度為9的字符串,即為JESS10NID,將該字符串作為當(dāng)前字符串;
[0080]步驟105-3:倒計(jì)時(shí)頁(yè)面判斷當(dāng)前字符串與組合字符是否相同,如果是,則執(zhí)行步驟105-4,否則執(zhí)行步驟105-7 ;
[0081]例如,本實(shí)施例中,比較當(dāng)前字符串JESS10NID和組合字符timemark=不相同,執(zhí)行步驟105-7 ;
[0082]步驟105-4:倒計(jì)時(shí)頁(yè)面調(diào)用檢索函數(shù),判斷是否能夠查找到當(dāng)前字符串后的首個(gè)第二預(yù)設(shè)字符,如果是,則執(zhí)行步驟105-5,否則執(zhí)行步驟105-6 ;
[0083]其中,優(yōu)選的,第二預(yù)設(shè)字符為“;”,通過(guò)調(diào)用檢索函數(shù)varendstr=bikky.1ndexOf (〃; 〃,offset),從 cookie 中獲取 timemark=之后的首個(gè)“;”;
[0084]例如,本實(shí)施例中,cookie中 timemark=11387261920000,當(dāng)前字符串 timemark=后不存在“;”,執(zhí)行步驟105-6;
[0085]步驟105-5:倒計(jì)時(shí)頁(yè)面獲取當(dāng)前字符串與第二預(yù)設(shè)字符之間的字符串,作為需要讀取的時(shí)間值,執(zhí)行步驟106 ;
[0086]步驟105-6:倒計(jì)時(shí)頁(yè)面獲取當(dāng)前字符串后的所有字符串,作為需要讀取的時(shí)間值,執(zhí)行步驟106 ;
[0087]例如,本實(shí)施例中,獲取當(dāng)前字符串“timemark=”后的所有字符串1387261920000,即為需要讀取的時(shí)間值;
[0088]步驟105-7:倒計(jì)時(shí)頁(yè)面調(diào)用檢索函數(shù),查找當(dāng)前字符串后的首個(gè)第三預(yù)設(shè)字符;
[0089]其中,優(yōu)選的,第三預(yù)設(shè)字符為空格,通過(guò)調(diào)用檢索函數(shù)varendstr=bikky.1ndexOf (〃〃,offset),從 cookie 中獲取 JESS10NID 后的首個(gè)空格;
[0090]步驟105-8:倒計(jì)時(shí)頁(yè)面判斷是否還有未處理的字符,如果是,則執(zhí)行步驟105-9,否則未找到需要讀取的時(shí)間值,執(zhí)行步驟111 ;[0091]具體為:判斷第三預(yù)設(shè)字符后是否還有其他字符,是則還有未處理的字符,否則沒(méi)有未處理的字符;
[0092]步驟105-9:倒計(jì)時(shí)頁(yè)面從當(dāng)前字符串后的首個(gè)第三預(yù)設(shè)字符后的第一個(gè)字符開(kāi)始,獲取長(zhǎng)度為第一長(zhǎng)度的字符串,將該字符串作為當(dāng)前字符串,返回步驟105-3 ;
[0093]例如,本實(shí)施例中,倒計(jì)時(shí)頁(yè)面從cookie中獲取到時(shí)間值為1387261920000ms,即2013-12-1714:32:00 ;
[0094]步驟106:倒計(jì)時(shí)頁(yè)面獲取當(dāng)前系統(tǒng)時(shí)間;
[0095]例如,倒計(jì)時(shí)頁(yè)面獲取到當(dāng)前系統(tǒng)時(shí)間為1387261940000ms,即2013-12-1714:32:20 ;
[0096]步驟107:倒計(jì)時(shí)頁(yè)面根據(jù)當(dāng)前系統(tǒng)時(shí)間、時(shí)間值和倒計(jì)時(shí)時(shí)間,得到仍需倒計(jì)時(shí)的時(shí)間;
[0097]本實(shí)施例中,優(yōu)選的,根據(jù)當(dāng)前系統(tǒng)時(shí)間、時(shí)間值和倒計(jì)時(shí)時(shí)間,得到仍需倒計(jì)時(shí)的時(shí)間,具體為:倒計(jì)時(shí)頁(yè)面計(jì)算時(shí)間值與倒計(jì)時(shí)時(shí)間之和,再與當(dāng)前系統(tǒng)時(shí)間的差值,將該差值作為仍需倒計(jì)時(shí)的時(shí)間;
[0098]例如,本實(shí)施例中,當(dāng)前系統(tǒng)時(shí)間為1387261940000ms,則時(shí)間值1387261920000ms加上倒計(jì)時(shí)時(shí)間60000ms,再與當(dāng)前系統(tǒng)時(shí)間1387261940000ms的差值為40000ms,則仍需倒計(jì)時(shí)的時(shí)間為40000ms ;
[0099]除此之外,還可以為:倒計(jì)時(shí)頁(yè)面計(jì)算當(dāng)前系統(tǒng)時(shí)間減去時(shí)間值再減去倒計(jì)時(shí)時(shí)間的差值,將該差值的絕對(duì)值作為仍需倒計(jì)時(shí)的時(shí)間;例如,本實(shí)施例中,當(dāng)前系統(tǒng)時(shí)間1387261940000ms減去時(shí)間值1387261920000ms再減去倒計(jì)時(shí)時(shí)間60000ms,結(jié)果為-40000ms,將該差值作為仍需倒計(jì)時(shí)的時(shí)間;
[0100]如果當(dāng)前系統(tǒng)時(shí)間為1387261990000ms,則當(dāng)前系統(tǒng)時(shí)間減去cookie中記錄的時(shí)間1387261920000ms再減去倒計(jì)時(shí)時(shí)間60000ms,結(jié)果為10000ms,將該差值作為仍需倒計(jì)時(shí)的時(shí)間;
[0101]步驟108:倒計(jì)時(shí)頁(yè)面根據(jù)仍需倒計(jì)時(shí)的時(shí)間,判斷是否處于倒計(jì)時(shí)狀態(tài),如果是,則執(zhí)行步驟109,否則執(zhí)行步驟111 ;
[0102]本實(shí)施例中,優(yōu)選的,倒計(jì)時(shí)頁(yè)面計(jì)算時(shí)間值加上倒計(jì)時(shí)時(shí)間,再與當(dāng)前系統(tǒng)時(shí)間的差值,作為仍需倒計(jì)時(shí)的時(shí)間,則判斷是否處于倒計(jì)時(shí)狀態(tài),具體為:判斷仍需倒計(jì)時(shí)的時(shí)間是否大于0,如果是,則處于倒計(jì)時(shí)狀態(tài),否則已結(jié)束倒計(jì)時(shí);
[0103]除此之外,還可以為:倒計(jì)時(shí)頁(yè)面計(jì)算當(dāng)前系統(tǒng)時(shí)間減去時(shí)間值再減去倒計(jì)時(shí)時(shí)間的差值的絕對(duì)值,作為仍需倒計(jì)時(shí)的時(shí)間,則判斷是否處于倒計(jì)時(shí)狀態(tài),具體為:判斷該差值是否小于0,如果是,則處于倒計(jì)時(shí)狀態(tài),否則已結(jié)束倒計(jì)時(shí);
[0104]步驟109:倒計(jì)時(shí)頁(yè)面調(diào)用倒計(jì)時(shí)函數(shù),根據(jù)倒計(jì)時(shí)函數(shù)的參數(shù),更新仍需倒計(jì)時(shí)的時(shí)間;
[0105]本實(shí)施例中,倒計(jì)時(shí)頁(yè)面調(diào)用倒計(jì)時(shí)函數(shù):var timer=window.setlnterval (function (), time),每隔 time 時(shí)間,調(diào)用一次 function O 函數(shù),優(yōu)選的,time為 IOOOrns ;
[0106]其中,function()函數(shù)為:
[0107]function ()[0108]{second—;
[0109]document.getElementByld ("sendbutt").value="剩余"+second+"秒";
[0110]if (second<=0) {
[0111]clearlnterval(timer);
[0112]document.getElementByld ("sendbutt").value="發(fā)送";
[0113]$("#sendbutt").attr ("disabled", false);}
[0114]其中,根據(jù)倒計(jì)時(shí)函數(shù)的參數(shù),更新仍需倒計(jì)時(shí)的時(shí)間,具體為:根據(jù)上述倒計(jì)時(shí)函數(shù)中的IOOOms,將仍需倒計(jì)時(shí)的時(shí)間減去IOOOms,得到剩余的倒計(jì)時(shí)時(shí)間,將剩余的倒計(jì)時(shí)時(shí)間作為更新后的仍需倒計(jì)時(shí)的時(shí)間,即40000ms減去1000ms,等于39000ms ;
[0115]步驟110:倒計(jì)時(shí)頁(yè)面顯示仍需倒計(jì)時(shí)的時(shí)間,并根據(jù)仍需倒計(jì)時(shí)的時(shí)間,判斷是否結(jié)束倒計(jì)時(shí),如果是,則執(zhí)行步驟111,否則返回執(zhí)行步驟109 ;
[0116]本實(shí)施例中,優(yōu)選的,以秒的形式顯示,包括:將毫秒形式的仍需倒計(jì)時(shí)的時(shí)間除以1000,得到秒形式的仍需倒計(jì)時(shí)的時(shí)間;通過(guò)調(diào)用document.getElementByld (〃sendbutt〃).Value=〃 剩余 〃+second+〃 秒〃;在倒計(jì)時(shí)界面上顯不“剩余39 秒”;
[0117]優(yōu)選的,本實(shí)施例中,倒計(jì)時(shí)頁(yè)面在發(fā)送按鈕的位置顯示仍需倒計(jì)時(shí)的時(shí)間;
[0118]其中,優(yōu)選的,根據(jù)仍需倒計(jì)時(shí)的時(shí)間,判斷是否結(jié)束倒計(jì)時(shí),具體為;判斷仍需倒計(jì)時(shí)的時(shí)間是否等于0,如果是,則結(jié)束倒計(jì)時(shí),否則未結(jié)束倒計(jì)時(shí);
[0119]步驟111:倒計(jì)時(shí)頁(yè)面將發(fā)送按鈕置為可用狀態(tài);
[0120]本實(shí)施例中,將發(fā)送按鈕置為可用狀態(tài),具體為:將發(fā)送按鈕的disable狀態(tài)清除;
[0121]本實(shí)施例中,步驟111還包括:當(dāng)?shù)褂?jì)時(shí)頁(yè)面檢測(cè)到鼠標(biāo)光標(biāo)放置在發(fā)送按鈕上時(shí),將發(fā)送按鈕的邊緣寬度設(shè)置為第一預(yù)設(shè)寬度,將發(fā)送按鈕的邊緣線(xiàn)設(shè)置為第一預(yù)設(shè)類(lèi)型,將發(fā)送按鈕的字體顏色設(shè)置為第一預(yù)設(shè)顏色,將發(fā)送按鈕的背景色設(shè)置為第一預(yù)設(shè)背景色;
[0122]例如,倒計(jì)時(shí)頁(yè)面將發(fā)送按鈕設(shè)置為:$ (this).css ({border: 〃lpx solid rgb (164,164, 164)",color: "rgb (43,43,43)"});其中,將邊緣寬度設(shè)置為 Ipx (像素),solid (實(shí)線(xiàn))Jfrgb (字體顏色)設(shè)置為(164,164,164),查找顏色對(duì)應(yīng)表,可得字體顏色為深灰色,將發(fā)送按鈕的背景色設(shè)置為rgb (43,43,43),查找顏色對(duì)應(yīng)表,可得背景色為暗石板灰色;
[0123]進(jìn)一步地,步驟111還包括:當(dāng)?shù)褂?jì)時(shí)頁(yè)面檢測(cè)到鼠標(biāo)光標(biāo)移開(kāi)發(fā)送按鈕時(shí),將發(fā)送按鈕的邊緣寬度設(shè)置為第二預(yù)設(shè)寬度,將發(fā)送按鈕的邊緣線(xiàn)設(shè)置為第二預(yù)設(shè)類(lèi)型,將發(fā)送按鈕的字體顏色設(shè)置為第二預(yù)設(shè)顏色,將發(fā)送按鈕的背景色設(shè)置為第二預(yù)設(shè)背景色;
[0124]例如,倒計(jì)時(shí)頁(yè)面將發(fā)送按鈕格式設(shè)置為:$ (〃#sendbutt〃).css ({background: 〃rgb (111, 181, 54) ",border: "lpx solid rgb (92, 152, 44) ",color: "rgb (255, 255, 255) "});其中,將背景色設(shè)置為rgb(lll,181,54),查找顏色對(duì)應(yīng)表,可得背景色為橄欖褐色,將邊框?qū)挾仍O(shè)置為Ipx (像素),solid (實(shí)線(xiàn)),將邊框顏色設(shè)置為(92,152,44),查找顏色對(duì)應(yīng)表,可得邊框顏色為深灰色,將字體顏色設(shè)置為(255,255,255),查找顏色對(duì)應(yīng)表,可得邊框顏色為淺粉色;
[0125]步驟112:當(dāng)?shù)褂?jì)時(shí)頁(yè)面檢測(cè)到發(fā)送按鈕被按下時(shí),生成口令請(qǐng)求,將口令請(qǐng)求發(fā)送給服務(wù)器,將發(fā)送按鈕置為不可用狀態(tài),并獲取當(dāng)前系統(tǒng)時(shí)間,根據(jù)當(dāng)前系統(tǒng)時(shí)間更新cookie中的時(shí)間值,返回執(zhí)行步驟107 ;
[0126]本實(shí)施例中,根據(jù)當(dāng)前系統(tǒng)時(shí)間更新cookie中的時(shí)間值,具體為:將cookie中記錄的時(shí)間值替換為當(dāng)前系統(tǒng)時(shí)間;
[0127]本實(shí)施例中,在任意步驟時(shí),對(duì)倒計(jì)時(shí)頁(yè)面執(zhí)行關(guān)閉再打開(kāi)或刷新頁(yè)面的操作時(shí),均從步驟101開(kāi)始執(zhí)行。
[0128]實(shí)施例2
[0129]本發(fā)明實(shí)施例1中步驟112中,所述生成口令請(qǐng)求,具體包括:當(dāng)?shù)褂?jì)時(shí)頁(yè)面檢測(cè)到發(fā)送按鈕被按下時(shí),倒計(jì)時(shí)頁(yè)面判斷是否接收到用戶(hù)輸入的用戶(hù)名,如果是,則根據(jù)用戶(hù)名,生成口令請(qǐng)求,否則提示用戶(hù)名不能為空結(jié)束;
[0130]實(shí)施例2是在實(shí)施例1的基礎(chǔ)上提供了一種服務(wù)器處理口令請(qǐng)求的方法,如圖3所示,包括:
[0131]步驟201:服務(wù)器接收到口令請(qǐng)求后,獲取口令請(qǐng)求中的用戶(hù)名;
[0132]步驟202:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中查找與用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),判斷是否能夠找到與用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),如果是,則執(zhí)行步驟203,否則向倒計(jì)時(shí)頁(yè)面返回未綁定的響應(yīng),結(jié)束;
[0133]例如,本實(shí)施例中,口令請(qǐng)求中的用戶(hù)名為“zhangsan”,從服務(wù)器存儲(chǔ)區(qū)中查找到與該用戶(hù)名對(duì)應(yīng)的令牌序列號(hào)為:2600206109357 ;
[0134]本實(shí)施例中,服務(wù)器存儲(chǔ)區(qū)中存放一一對(duì)應(yīng)的用戶(hù)名、令牌序列號(hào)、令牌類(lèi)型、令牌種子和手機(jī)號(hào);
[0135]步驟203:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中獲取令牌類(lèi)型,如果是硬件令牌類(lèi)型,則向倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng),結(jié)束,如果是短信令牌類(lèi)型,執(zhí)行步驟204 ;
[0136]本實(shí)施例中,還包括:倒計(jì)時(shí)頁(yè)面接收到服務(wù)器返回硬件令牌響應(yīng)后,顯示相應(yīng)信息,如顯示“請(qǐng)輸入硬件令牌口令”;
[0137]優(yōu)選的,本實(shí)施例中,當(dāng)獲取到的令牌類(lèi)型為I時(shí),標(biāo)識(shí)令牌類(lèi)型為短信令牌類(lèi)型,當(dāng)獲取到的令牌類(lèi)型為O時(shí),標(biāo)識(shí)令牌類(lèi)型為硬件令牌類(lèi)型;
[0138]步驟204:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中獲取與用戶(hù)名對(duì)應(yīng)的令牌種子;
[0139]例如,獲取到的令牌種子為:0x085356C41D5CD4A08B516BFB75EB42502E5942083A4E15DAEE57F12E8D892E4F31323334353600000000000000000000 ;
[0140]步驟205:服務(wù)器應(yīng)用預(yù)設(shè)算法,根據(jù)令牌種子,生成動(dòng)態(tài)口令;
[0141 ] 本實(shí)施例中,優(yōu)選的,預(yù)設(shè)算法為SM3算法,除此之外,還可以為SHA2、SHA256算法等;
[0142]例如,本實(shí)施例中,應(yīng)用SM3算法對(duì)令牌種子進(jìn)行計(jì)算,得到的結(jié)果轉(zhuǎn)換為6位十進(jìn)制的動(dòng)態(tài)口令:327751 ;
[0143]步驟206:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中獲取與用戶(hù)名對(duì)應(yīng)的手機(jī)號(hào);
[0144]例如,本實(shí)施例中,獲取到的手機(jī)號(hào)為13212345678 ;
[0145]步驟207:服務(wù)器通過(guò)短信平臺(tái),向手機(jī)號(hào)發(fā)送動(dòng)態(tài)口令;
[0146]例如,本實(shí)施例中,服務(wù)器將動(dòng)態(tài)口令327751發(fā)送給手機(jī)號(hào)為13212345678的手機(jī);[0147]步驟208:服務(wù)器獲取當(dāng)前服務(wù)器時(shí)間,將用戶(hù)名和當(dāng)前服務(wù)器時(shí)間寫(xiě)入服務(wù)器日志中;
[0148]例如,服務(wù)器獲取到當(dāng)前服務(wù)器時(shí)間為2013-12-1714:34:10,將用戶(hù)名“張三”和當(dāng)前服務(wù)器時(shí)間2013-12-1714:34:10寫(xiě)入服務(wù)器日志中;
[0149]本實(shí)施例,還可以為:
[0150]步驟al:服務(wù)器接收到口令請(qǐng)求后,獲取口令請(qǐng)求中的用戶(hù)名;
[0151]步驟a2:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中獲取與用戶(hù)名對(duì)應(yīng)的令牌系列號(hào)、令牌類(lèi)型、令牌種子和手機(jī)號(hào);[0152]本實(shí)施例中,還包括:判斷是否能夠獲取到令牌序列號(hào)、令牌類(lèi)型、令牌種子和手機(jī)號(hào),如果是,則執(zhí)行步驟a3,否則向倒計(jì)時(shí)頁(yè)面返回未綁定的響應(yīng),結(jié)束;
[0153]步驟a3:服務(wù)器判斷令牌類(lèi)型,如果是硬件令牌類(lèi)型,則向倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng),結(jié)束,如果是短信令牌類(lèi)型,執(zhí)行步驟a4 ;
[0154]步驟a4:服務(wù)器應(yīng)用預(yù)設(shè)算法,根據(jù)令牌種子,生成動(dòng)態(tài)口令,通過(guò)短信平臺(tái),將動(dòng)態(tài)口令發(fā)送給對(duì)應(yīng)的手機(jī)號(hào);
[0155]步驟a5:服務(wù)器獲取當(dāng)前服務(wù)器時(shí)間,將用戶(hù)名和當(dāng)前服務(wù)器時(shí)間寫(xiě)入服務(wù)器日志中。[0156]實(shí)施例3
[0157]本發(fā)明實(shí)施例1中步驟112中,所述生成口令請(qǐng)求,具體包括:當(dāng)?shù)褂?jì)時(shí)頁(yè)面檢測(cè)到發(fā)送按鈕被按下時(shí),倒計(jì)時(shí)頁(yè)面判斷是否接收到用戶(hù)輸入的用戶(hù)名和挑戰(zhàn)值,如果是,則根據(jù)用戶(hù)名和挑戰(zhàn)值,生成口令請(qǐng)求,否則提示用戶(hù)名或挑戰(zhàn)值不能為空,結(jié)束;
[0158]實(shí)施例3是在實(shí)施例1的基礎(chǔ)上提供了一種服務(wù)器處理口令請(qǐng)求的方法,如圖4所示,包括:
[0159]步驟301:服務(wù)器接收到口令請(qǐng)求后,獲取口令請(qǐng)求中的用戶(hù)名和挑戰(zhàn)值;
[0160]例如,本實(shí)施例中,口令請(qǐng)求中的用戶(hù)名為“張三”,挑戰(zhàn)值為123456 ;
[0161]步驟302:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中查找與用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),判斷是否能夠找到與用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),如果是,則執(zhí)行步驟303,否則向倒計(jì)時(shí)頁(yè)面返回未綁定的響應(yīng),結(jié)束;
[0162]例如,本實(shí)施例中,從服務(wù)器存儲(chǔ)區(qū)中查找到與該用戶(hù)名對(duì)應(yīng)的令牌序列號(hào)為:2600206109357;
[0163]本實(shí)施例中,服務(wù)器存儲(chǔ)區(qū)中存放一一對(duì)應(yīng)的用戶(hù)名、令牌序列號(hào)、令牌類(lèi)型、令牌種子和手機(jī)號(hào);
[0164]步驟303:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中獲取令牌類(lèi)型,如果是硬件令牌類(lèi)型,則向倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng),結(jié)束,如果是短信令牌類(lèi)型,執(zhí)行步驟304 ;
[0165]本實(shí)施例中,還包括:倒計(jì)時(shí)頁(yè)面接收到服務(wù)器返回硬件令牌響應(yīng)后,顯示相應(yīng)信息,如顯示“請(qǐng)輸入硬件令牌口令”;
[0166]優(yōu)選的,本實(shí)施例中,當(dāng)獲取到的令牌類(lèi)型為I時(shí),標(biāo)識(shí)令牌類(lèi)型為短信令牌類(lèi)型,當(dāng)獲取到的令牌類(lèi)型為O時(shí),標(biāo)識(shí)令牌類(lèi)型為硬件令牌類(lèi)型;
[0167]步驟304:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中獲取與用戶(hù)名對(duì)應(yīng)的令牌種子;
[0168]例如,獲取到的令牌種子為:B1898567429FB477045D4E98DCA849C22177CC79724FB155330E669390EE8ED1 ;
[0169]步驟305:服務(wù)器應(yīng)用預(yù)設(shè)算法,根據(jù)令牌種子和挑戰(zhàn)值,生成應(yīng)答值;
[0170]本實(shí)施例中,優(yōu)選的,預(yù)設(shè)算法為SM3算法,除此之外,還可以為SHA2、SHA256算法等;
[0171]例如,本實(shí)施例中,應(yīng)用SM3算法對(duì)令牌種子和挑戰(zhàn)值進(jìn)行計(jì)算,得到的結(jié)果轉(zhuǎn)換為6位十進(jìn)制的應(yīng)答值:462156 ;
[0172]步驟306:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中獲取與用戶(hù)名對(duì)應(yīng)的手機(jī)號(hào);
[0173]例如,本實(shí)施例中,獲取到的手機(jī)號(hào)為13212345678 ;
[0174]步驟307:服務(wù)器通過(guò)短信平臺(tái),向手機(jī)號(hào)發(fā)送應(yīng)答值;
[0175]例如,本實(shí)施例中,服務(wù)器將動(dòng)態(tài)口令462156發(fā)送給手機(jī)號(hào)為13212345678的手機(jī);
[0176]步驟308:服務(wù)器獲取當(dāng)前服務(wù)器時(shí)間,將用戶(hù)名、挑戰(zhàn)值和當(dāng)前服務(wù)器時(shí)間寫(xiě)入服務(wù)器日志中;
[0177]例如,服務(wù)器獲取到當(dāng)前服務(wù)器時(shí)間為2013-12-1714:34:10,將用戶(hù)名“張三”、挑戰(zhàn)值123456和當(dāng)前服務(wù)器時(shí)間2013-12-1714:34:10寫(xiě)入服務(wù)器日志中。
[0178]本實(shí)施例,還可以為:
[0179]步驟bl:服務(wù)器接收到口令請(qǐng)求后,獲取口令請(qǐng)求中的用戶(hù)名和挑戰(zhàn)值;
[0180]步驟b2:服務(wù)器根據(jù)用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中獲取與用戶(hù)名對(duì)應(yīng)的令牌系列號(hào)、令牌類(lèi)型、令牌種子和手機(jī)號(hào);
[0181]本實(shí)施例中,還包括:判斷是否能夠獲取到令牌序列號(hào)、令牌類(lèi)型、令牌種子和手機(jī)號(hào),如果是,則執(zhí)行步驟b3,否則向倒計(jì)時(shí)頁(yè)面返回未綁定的響應(yīng),結(jié)束;
[0182]步驟b3:服務(wù)器判斷令牌類(lèi)型,如果是硬件令牌類(lèi)型,則向倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng),結(jié)束,如果是短信令牌類(lèi)型,執(zhí)行步驟b4 ;
[0183]步驟b4:服務(wù)器應(yīng)用預(yù)設(shè)算法,根據(jù)令牌種子和挑戰(zhàn)值,生成應(yīng)答值,通過(guò)短信平臺(tái),將應(yīng)答值發(fā)送給對(duì)應(yīng)的手機(jī)號(hào);
[0184]步驟b5:服務(wù)器獲取當(dāng)前服務(wù)器時(shí)間,將用戶(hù)名、挑戰(zhàn)值和當(dāng)前服務(wù)器時(shí)間寫(xiě)入服務(wù)器日志中。
[0185]以上,僅為本發(fā)明較佳的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明公開(kāi)的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種實(shí)現(xiàn)瀏覽器倒計(jì)時(shí)的方法,其特征在于,包括:當(dāng)加載倒計(jì)時(shí)頁(yè)面時(shí),所述倒計(jì)時(shí)頁(yè)面執(zhí)行以下操作: 步驟S1:所述倒計(jì)時(shí)頁(yè)面初始化,將發(fā)送按鈕置為不可用狀態(tài); 步驟S2:所述倒計(jì)時(shí)頁(yè)面載入倒計(jì)時(shí)時(shí)間; 步驟S3:所述倒計(jì)時(shí)頁(yè)面判斷是否能夠從cookie中獲取到時(shí)間值,是則獲取當(dāng)前系統(tǒng)時(shí)間,執(zhí)行步驟S4,否則執(zhí)行步驟S7 ; 步驟S4:所述倒計(jì)時(shí)頁(yè)面根據(jù)當(dāng)前系統(tǒng)時(shí)間、所述時(shí)間值和所述倒計(jì)時(shí)時(shí)間,得到仍需倒計(jì)時(shí)的時(shí)間,根據(jù)所述仍需倒計(jì)時(shí)的時(shí)間,判斷是否處于倒計(jì)時(shí)狀態(tài),是則執(zhí)行步驟S5,否則執(zhí)行步驟S7 ; 步驟S5:所述倒計(jì)時(shí)頁(yè)面調(diào)用倒計(jì)時(shí)函數(shù),根據(jù)所述倒計(jì)時(shí)函數(shù),更新所述仍需倒計(jì)時(shí)的時(shí)間; 步驟S6:所述倒計(jì)時(shí)頁(yè)面顯示所述仍需倒計(jì)時(shí)的時(shí)間,根據(jù)所述仍需倒計(jì)時(shí)的時(shí)間,判斷是否結(jié)束倒計(jì)時(shí),如果是,則執(zhí)行步驟S7,否則返回步驟S5 ; 步驟S7:所述倒計(jì)時(shí)頁(yè)面將所述發(fā)送按鈕置為可用狀態(tài); 步驟S8:當(dāng)所述倒計(jì)時(shí)頁(yè)面檢測(cè)到所述發(fā)送按鈕被按下時(shí),生成口令請(qǐng)求,將所述口令請(qǐng)求發(fā)送給服務(wù)器,將所述發(fā)送按鈕置為不可用狀態(tài),并獲取當(dāng)前系統(tǒng)時(shí)間,根據(jù)所述當(dāng)前系統(tǒng)時(shí)間更新cookie中的時(shí)間值,返回執(zhí)行步驟S4。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S2中,所述倒計(jì)時(shí)時(shí)間為預(yù)設(shè)時(shí)間,或用戶(hù)根據(jù)需求而設(shè)置的時(shí)間。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S3中,所述判斷是否能夠從cookie中獲取到時(shí)間值,具體為: 步驟S3-1:所述倒計(jì)時(shí)頁(yè)面調(diào)用獲取時(shí)間值函數(shù),根據(jù)傳入的時(shí)間值屬性名,獲取需要讀取的時(shí)間值,將所述時(shí)間值屬性名的長(zhǎng)度與第一預(yù)設(shè)字符的長(zhǎng)度之和作為第一長(zhǎng)度,將所述時(shí)間值屬性名的字符和所述第一預(yù)設(shè)字符的組合作為組合字符; 步驟S3-2:所述倒計(jì)時(shí)頁(yè)面從cookie的第一個(gè)字符開(kāi)始,獲取長(zhǎng)度為所述第一長(zhǎng)度的字符串,將所述字符串作為當(dāng)前字符串; 步驟S3-3:所述倒計(jì)時(shí)頁(yè)面判斷當(dāng)前字符串與所述組合字符是否相同,如果是,則執(zhí)行步驟S3-4,否則執(zhí)行步驟S3-7 ; 步驟S3-4:所述倒計(jì)時(shí)頁(yè)面調(diào)用檢索函數(shù),判斷是否能夠查找到當(dāng)前字符串后的首個(gè)第二預(yù)設(shè)字符,如果是,則執(zhí)行步驟S3-5,否則執(zhí)行步驟S3-6 ; 步驟S3-5:所述倒計(jì)時(shí)頁(yè)面獲取所述當(dāng)前字符串與所述第二預(yù)設(shè)字符之間的字符串,作為需要讀取的時(shí)間值,執(zhí)行步驟S4 ; 步驟S3-6:所述倒計(jì)時(shí)頁(yè)面獲取當(dāng)前字符串后的所有字符串,作為需要讀取的時(shí)間值,執(zhí)行步驟S4 ; 步驟S3-7:所述倒計(jì)時(shí)頁(yè)面調(diào)用檢索函數(shù),查找當(dāng)前字符串后的首個(gè)第三預(yù)設(shè)字符;步驟S3-8:所述倒計(jì)時(shí)頁(yè)面判斷是否還有未處理的字符,如果是,則執(zhí)行步驟S3-9,否則未找到需要讀取的時(shí)間值,執(zhí)行步驟S7 ; 步驟S3-9:所述倒計(jì)時(shí)頁(yè)面從當(dāng)前字符串后的首個(gè)第三預(yù)設(shè)字符后的第一個(gè)字符開(kāi)始,獲取長(zhǎng)度為所述第一長(zhǎng)度的字符串,將獲取到的所述字符串作為當(dāng)前字符串,返回步驟S3-3。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S3之前還包括:所述倒計(jì)時(shí)頁(yè)面判斷是否能夠獲取到cookie,如果是,則執(zhí)行步驟S3,否則所述倒計(jì)時(shí)頁(yè)面將所述發(fā)送按鈕置為可用狀態(tài),當(dāng)檢測(cè)到所述發(fā)送按鈕被按下時(shí),創(chuàng)建cookie,并獲取當(dāng)前系統(tǒng)時(shí)間,將該當(dāng)前系統(tǒng)時(shí)間作為時(shí)間值記錄在cookie中,執(zhí)行步驟S4。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S4,具體為:所述倒計(jì)時(shí)頁(yè)面計(jì)算所述時(shí)間值與所述倒計(jì)時(shí)時(shí)間的和,再與當(dāng)前系統(tǒng)時(shí)間的差值,將所述差值作為仍需倒計(jì)時(shí)的時(shí)間,判斷所述差值是否大于0,如果是,則執(zhí)行步驟S5,否則執(zhí)行步驟S7。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S4,具體為:所述倒計(jì)時(shí)頁(yè)面計(jì)算當(dāng)前系統(tǒng)時(shí)間減去所述時(shí)間值再減去倒計(jì)時(shí)時(shí)間的差值,將所述差值作為仍需倒計(jì)時(shí)的時(shí)間,判斷所述差值是否小于0,如果是,則執(zhí)行步驟S5,否則執(zhí)行步驟S7。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S6中,所述顯示所述仍需倒計(jì)時(shí)的時(shí)間,具體為:所述倒計(jì)時(shí)頁(yè)面在所述發(fā)送按鈕的位置顯示所述仍需倒計(jì)時(shí)的時(shí)間。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S6中,所述根據(jù)所述仍需倒計(jì)時(shí)的時(shí)間,判斷是否結(jié)束倒計(jì)時(shí),具體為:判斷所述仍需倒計(jì)時(shí)的時(shí)間是否等于0,如果是,則執(zhí)行步驟S7,否則返回 步驟S5。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S7,還包括:當(dāng)所述倒計(jì)時(shí)頁(yè)面檢測(cè)到鼠標(biāo)光標(biāo)放置在所述發(fā)送按鈕上時(shí),將所述發(fā)送按鈕的邊緣寬度設(shè)置為第一預(yù)設(shè)寬度,將所述發(fā)送按鈕的邊緣線(xiàn)設(shè)置為第一預(yù)設(shè)類(lèi)型,將所述發(fā)送按鈕的字體顏色設(shè)置為第一預(yù)設(shè)顏色,將所述發(fā)送按鈕的背景色設(shè)置為第一預(yù)設(shè)背景色。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述步驟S7,還包括:當(dāng)所述倒計(jì)時(shí)頁(yè)面檢測(cè)到鼠標(biāo)光標(biāo)移開(kāi)所述發(fā)送按鈕時(shí),將所述發(fā)送按鈕的邊緣寬度設(shè)置為第二預(yù)設(shè)寬度,將所述發(fā)送按鈕的邊緣線(xiàn)設(shè)置為第二預(yù)設(shè)類(lèi)型,將所述發(fā)送按鈕的字體顏色設(shè)置為第二預(yù)設(shè)顏色,將所述發(fā)送按鈕的背景色設(shè)置為第二預(yù)設(shè)背景色。
11.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S8中,所述生成口令請(qǐng)求,具體為:所述倒計(jì)時(shí)頁(yè)面判斷是否接收到用戶(hù)輸入的用戶(hù)名,如果是,則根據(jù)所述用戶(hù)名,生成口令請(qǐng)求,否則提示用戶(hù)名不能為空,結(jié)束。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述步驟S8中,所述將所述口令請(qǐng)求發(fā)送給服務(wù)器之后,所述服務(wù)器執(zhí)行以下操作: 步驟al:所述服務(wù)器接收到所述口令請(qǐng)求后,獲取所述口令請(qǐng)求中的用戶(hù)名; 步驟a2:所述服務(wù)器根據(jù)所述用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中查找與所述用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),并判斷是否能夠找到與所述用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),如果是,則執(zhí)行步驟a3,否則向所述倒計(jì)時(shí)頁(yè)面返回未綁定的響應(yīng),結(jié)束; 步驟a3:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取令牌類(lèi)型,如果是硬件令牌類(lèi)型,則向所述倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng),結(jié)束,如果是短信令牌類(lèi)型,則執(zhí)行步驟a4 ; 步驟a4:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取與所述用戶(hù)名對(duì)應(yīng)的令牌種子; 步驟a5:所述服務(wù)器應(yīng)用預(yù)設(shè)算法,根據(jù)所述令牌種子,生成動(dòng)態(tài)口令;步驟a6:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取與所述用戶(hù)名對(duì)應(yīng)的手機(jī)號(hào); 步驟a7:所述服務(wù)器通過(guò)短信平臺(tái),向所述手機(jī)號(hào)發(fā)送所述動(dòng)態(tài)口令。
13.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S8中,所述生成口令請(qǐng)求,具體為:所述倒計(jì)時(shí)頁(yè)面判斷是否接收到用戶(hù)輸入的用戶(hù)名和挑戰(zhàn)值,如果是,則根據(jù)所述用戶(hù)名和所述挑戰(zhàn)值,生成口令請(qǐng)求,否則提示用戶(hù)名或挑戰(zhàn)值不能為空,結(jié)束。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟S8中,將所述口令請(qǐng)求發(fā)送給服務(wù)器后,所述服務(wù)器執(zhí)行以下操作: 步驟bl:所述服務(wù)器接收到所述口令請(qǐng)求后,獲取所述口令請(qǐng)求中的用戶(hù)名和挑戰(zhàn)值; 步驟b2:所述服務(wù)器根據(jù)所述用戶(hù)名,從服務(wù)器存儲(chǔ)區(qū)中查找與所述用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),并判斷是否能夠找到與所述用戶(hù)名對(duì)應(yīng)的令牌序列號(hào),如果是,則執(zhí)行步驟b3,否則向所述倒計(jì)時(shí)頁(yè)面返回未綁定的響應(yīng),結(jié)束; 步驟b3:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取令牌類(lèi)型,如果是硬件令牌類(lèi)型,則向所述倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng),結(jié)束,如果是短信令牌類(lèi)型,執(zhí)行步驟b4 ; 步驟b4:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取與所述用戶(hù)名對(duì)應(yīng)的令牌種子; 步驟b5:所述服務(wù)器應(yīng)用預(yù)設(shè)算法,根據(jù)所述令牌種子和所述挑戰(zhàn)值,生成應(yīng)答值; 步驟b6:所述服務(wù)器根據(jù)所述用戶(hù)名,從所述服務(wù)器存儲(chǔ)區(qū)中獲取與所述用戶(hù)名對(duì)應(yīng)的手機(jī)號(hào); 步驟b7:所述服務(wù)器通過(guò)短信平臺(tái),向所述手機(jī)號(hào)發(fā)送所述應(yīng)答值。
15.根據(jù)權(quán)利要求12或14所述的方法,其特征在于,所述向所述倒計(jì)時(shí)頁(yè)面返回硬件令牌響應(yīng)后,還包括:所述倒計(jì)時(shí)頁(yè)面接收到所述服務(wù)器返回的硬件令牌響應(yīng)后,顯示輸入硬件令牌口令的信息。
16.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述向所述手機(jī)號(hào)發(fā)送所述動(dòng)態(tài)口令后,還包括:所述服務(wù)器獲取當(dāng)前服務(wù)器時(shí)間,將所述用戶(hù)名和所述當(dāng)前服務(wù)器時(shí)間寫(xiě)入服務(wù)器日志中。
17.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述向所述手機(jī)號(hào)發(fā)送所述應(yīng)答值后,還包括:所述服務(wù)器獲取當(dāng)前服務(wù)器時(shí)間,將所述用戶(hù)名、挑戰(zhàn)值和所述當(dāng)前服務(wù)器時(shí)間寫(xiě)入服務(wù)器日志中。
【文檔編號(hào)】H04L29/06GK103841199SQ201410084643
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2014年3月10日 優(yōu)先權(quán)日:2014年3月10日
【發(fā)明者】陸舟, 于華章 申請(qǐng)人:飛天誠(chéng)信科技股份有限公司