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