欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種利用密碼盤實現(xiàn)驗證碼驗證的方法及系統(tǒng)與流程

文檔序號:11064795閱讀:357來源:國知局
一種利用密碼盤實現(xiàn)驗證碼驗證的方法及系統(tǒng)與制造工藝

本發(fā)明涉及驗證碼處理技術領域,具體來講是一種利用密碼盤實現(xiàn)驗證碼驗證的方法及系統(tǒng)。



背景技術:

驗證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自動區(qū)分計算機和人類的圖靈測試)的縮寫,是一種區(qū)分用戶是計算機還是人的公共全自動程序。通常情況下,驗證碼使用一些線條和一些不規(guī)則的字符組成,用戶必須讀取這些字符,然后輸入這些字符才能成功驗證。因為人可以很容易讀出圖片中的字符,但如果是一段客戶端攻擊程序(即機器人程序),則通過一般手段是很難識別所述驗證碼的。因此,驗證碼的作用是可以防止惡意破解密碼、刷票、論壇灌水或進行非正常的不斷登陸嘗試等。

目前,很多網(wǎng)站或應用都會有自己的驗證碼驗證系統(tǒng)。但是,實際使用中,現(xiàn)有的很多驗證系統(tǒng)還是可能會遭到用戶或者一些人員的破解,安全性較低,進而使得網(wǎng)站或應用中某些功能還是可能會被機器程序來利用完成,這樣對于該應用的其他用戶是不公平的。

因此,如何有效避免驗證碼被惡意破解,提高驗證碼的驗證作用,是本領域技術人員亟待解決的問題。



技術實現(xiàn)要素:

本發(fā)明的目的是為了克服上述背景技術的不足,提供一種利用密碼盤實現(xiàn)驗證碼驗證的方法及系統(tǒng),能有效避免驗證碼被惡意破解,增強驗證碼的驗證作用,安全性高。

為達到以上目的,本發(fā)明采取的技術方案是:提供一種利用密碼盤實現(xiàn)驗證碼驗證的方法,該方法包括以下步驟:A、用戶端向服務器端發(fā)出驗證碼信息的請求;B、服務器端收到用戶端發(fā)來的驗證碼信息的請求后,隨機選定真實驗證碼并生成相應驗證碼信息;根據(jù)真實驗證碼,經(jīng)過隨機選定的一種四則運算得到提示信息;將驗證碼信息和提示信息發(fā)送至用戶端;C、用戶端收到服務器端發(fā)來的信息后,根據(jù)驗證碼信息繪制包含有真實驗證碼的圓形密碼盤,并展示提示信息;D、用戶根據(jù)提示信息,通過旋轉密碼盤輸入相應的數(shù)據(jù);用戶端記錄下用戶輸入的數(shù)據(jù)并上傳至服務器端;E、服務器端對用戶端上傳的數(shù)據(jù)進行驗證,并返回驗證結果至用戶端;F、用戶端根據(jù)服務器端返回的驗證結果進行相應處理,并向用戶進行反饋。

本發(fā)明還提供一種利用密碼盤實現(xiàn)驗證碼驗證的系統(tǒng),該系統(tǒng)包括用戶端和服務器端;用戶端包括請求發(fā)送單元、密碼盤繪制單元、數(shù)據(jù)記錄單元、驗證反饋單元;服務器端包括驗證信息生成單元、驗證處理單元;

所述請求發(fā)送單元用于:向服務器端發(fā)出驗證碼信息的請求;所述驗證信息生成單元用于:收到用戶端發(fā)來的驗證碼信息的請求后,隨機選定真實驗證碼并生成相應驗證碼信息;根據(jù)真實驗證碼,經(jīng)過隨機選定的一種四則運算得到提示信息;將驗證碼信息和提示信息發(fā)送至用戶端;所述密碼盤繪制單元用于:收到服務器端發(fā)來的信息后,根據(jù)驗證碼信息繪制包含有真實驗證碼的圓形密碼盤,并展示提示信息;所述數(shù)據(jù)記錄單元用于:記錄下用戶通過旋轉密碼盤輸入的數(shù)據(jù),并上傳至服務器端;所述驗證處理單元用于:對用戶端上傳的數(shù)據(jù)進行驗證,并返回驗證結果至用戶端;所述驗證反饋單元用于:根據(jù)服務器端返回的驗證結果進行相應處理,并向用戶進行反饋。

本發(fā)明的有益效果在于:

1、傳統(tǒng)的驗證碼驗證技術中,驗證碼都是一個已經(jīng)生成好的數(shù)據(jù),而且是進入有限的數(shù)據(jù)庫隨中機取得的一條,如果有人想要破解,總能得到所有數(shù)據(jù)庫的數(shù)據(jù)。而本發(fā)明中,所有的真實驗證碼都是隨機生成的,且對應的提示信息也是通過隨機選定的四則運算公式得到的,沒有任何可預見性及破解性,因此,本發(fā)明可以從數(shù)量上及隨機性上保證驗證碼不會被破解,增強了驗證碼的驗證作用,安全性高。

2、本發(fā)明中,生成驗證碼信息的過程與驗證處理的過程都是在服務器端做的,因此,用戶端沒有任何可以進行破解或者繞過驗證的方式,從而有效保證了驗證功能可以在需要使用的地方被使用,而不會被用戶通過其他方式繞過。

3、本發(fā)明中,服務器端傳輸給用戶端的信息中是不直接包含真實驗證碼的,而是與真實驗證碼對應的md5信息,因此,驗證信息只能在服務器端驗證。并且,服務器在一個驗證碼驗證無論正確與否的情況下,該條數(shù)據(jù)都會立即刪除,即使需要再次驗證,也只會重新生成數(shù)據(jù)重新繪制密碼盤進行驗證,如果正確則返回正確的驗證信息,如果錯誤則返回錯誤信息。由于同一驗證信息只能被驗證一次,無法重試,因此從根源上保證驗證信息無法被破解。

4、本發(fā)明給用戶提供了一種全新輸入驗證碼的方式,不用在打開鍵盤,輸入字符,而是通過簡單的加減乘除四則運算來得到結果,同時通過轉動密碼盤來選擇結果,方便的同時也避免了驗證碼被用戶惡意繞過的危險。

5、本發(fā)明中,由于每次生成的數(shù)字個數(shù)不一樣,填入密碼盤的位置不一樣,同時,由于數(shù)字個數(shù)不同,使得每次密碼盤分片所占的圓心角角度也不一樣。因此,只能人工來操作才可以正確使用,從而讓輸入功能避免機器輸入的可能性,進一步增強驗證碼的驗證作用。

附圖說明

圖1為本發(fā)明實施例中利用密碼盤實現(xiàn)驗證碼驗證的方法的流程圖;

圖2為本發(fā)明實施例中用戶端所繪制的圓形密碼盤的示意圖;

圖3為本發(fā)明實施例中利用密碼盤實現(xiàn)驗證碼驗證的系統(tǒng)的結構框圖。

具體實施方式

下面結合附圖及具體實施例對本發(fā)明作進一步的詳細描述。

參見圖1所示,本發(fā)明實施例提供一種利用密碼盤實現(xiàn)驗證碼驗證的方法,包括以下步驟:

步驟S1:用戶在執(zhí)行某項功能的時候如果需要用到驗證碼功能,會通過用戶端向服務器端發(fā)出驗證碼信息的請求(即請求服務器端發(fā)送驗證碼信息)。

步驟S2:服務器端收到用戶端發(fā)來的驗證碼信息的請求后,會隨機選定真實驗證碼,并根據(jù)真實驗證碼生成對應的驗證碼信息。

可以理解的是,為了提高驗證碼的安全性,在生成驗證碼信息時,會對真實驗證碼進行md5編碼,即生成一個與真實驗證碼對應的md5信息,且在后續(xù)的驗證碼信息的傳輸過程中,真實驗證碼也只會以經(jīng)過md5編碼后的md5信息存在,有效地提高了安全性。在此基礎上,步驟S2具體包括以下操作:

步驟S201:服務器端收到用戶端發(fā)來的驗證碼信息的請求后,隨機生成若干個數(shù)字。

可以理解的是,服務器端隨機生成的數(shù)字的最大個數(shù)不超過20個,因為數(shù)字多了用戶手機上生成的密碼盤中,每個數(shù)字所占的界面空間就較小,會影響用戶體驗。因此,本方案中規(guī)定隨機生成的數(shù)字的個數(shù)不超過20個。并且,每個數(shù)字的值都在300以內(nèi),因為如果數(shù)值比300大同樣會影響用戶體驗。

步驟S202:從生成的若干個數(shù)字中隨機挑選一個數(shù)字作為真實驗證碼,并保存至本地的驗證碼臨時庫中。

步驟S203:生成一個與真實驗證碼對應的md5信息,并臨時保存至本地。

步驟S204:將隨機生成的若干個數(shù)字與所述md5信息組合,生成驗證碼信息。

步驟S3:根據(jù)真實驗證碼,經(jīng)過隨機選定的一種四則運算(即加減乘除中的一種),得到提示信息。

可以理解的是,由于四則運算包括加減乘除四種運算方式,因此,實際操作中,步驟S3具體包括以下操作:

若隨機選定的四則運算為加法運算,則先隨機獲取一個比真實驗證碼小的數(shù)字,記為X1;然后使用真實驗證碼去減X1,得到的數(shù)據(jù)記為X2;最后,生成內(nèi)容為“請選出X1和X2相加得到的數(shù)字”的提示信息;

若隨機選定的四則運算為減法運算,則先隨機獲取一個比真實驗證碼大的數(shù)字,記為X1;然后使用X1去減真實驗證碼,得到的數(shù)據(jù)記為X2;最后,生成內(nèi)容為“請選出X1和X2相減得到的數(shù)字”的提示信息;

若隨機選定的四則運算為乘法運算,則先判斷驗證碼是否為質數(shù),若是,則隨機轉換至其他四則運算來生成提示信息;若不是,則先將真實驗證碼除以2,看是否有余數(shù),如果有余數(shù)則重新將真實驗證碼除以3,再判斷是否余數(shù),如果還有余數(shù)則將真實驗證碼依次除下去,直至沒有余數(shù)為止;然后,將當前除數(shù)記為X1,將商記為X2;最后,生成內(nèi)容為“請選出X1和X2相乘得到的數(shù)字”的提示信息;

若隨機選定的四則運算為除法運算,則使用真實驗證碼乘以一個隨機獲取的數(shù)據(jù),將隨機獲取的數(shù)據(jù)記為X1,將計算得到的數(shù)據(jù)記為X2;生成內(nèi)容為“請選出X1和X2相除得到的數(shù)字”的提示信息。

步驟S4:將驗證碼信息和提示信息發(fā)送至用戶端。本實施例中,服務器端會將驗證碼信息和提示信息組合成一個JSON(JavaScript Object Notation,一種輕量級的數(shù)據(jù)交換格式)字符串發(fā)送至客戶端。其格式可如下:

其中,code為生成的md5信息,msg為生成的提示信息,num為服務器端隨機生成的若干個數(shù)字。

步驟S5:用戶端收到服務器端發(fā)來的信息后,根據(jù)驗證碼信息繪制包含有真實驗證碼的圓形密碼盤,并展示提示信息。

實際操作時,步驟S5具體包括以下操作:

步驟S501:用戶端收到服務器端發(fā)來的信息后,獲取驗證碼信息中隨機生成的若干個數(shù)字的個數(shù)。

步驟S502:用360°除以隨機生成的若干個數(shù)字的個數(shù),得到圓形密碼盤中每塊扇形分片的圓心角度數(shù)。可以理解的是,實際操作中,若所計算出來的圓心角度數(shù)如果有余數(shù),則使用四舍五入取得整數(shù),最后一塊扇形分片可能不會均分,但是只存在1度的誤差,因此用戶難以從視覺上察覺。

步驟S503:如圖2所示,根據(jù)得到的各塊扇形分片的圓心角度數(shù)繪制圓形密碼盤,將驗證碼信息中隨機生成的若干個數(shù)字一一填入到扇形分片中;并展示驗證碼信息中的提示信息。

步驟S6:用戶根據(jù)提示信息,通過旋轉密碼盤輸入相應的數(shù)據(jù);用戶端記錄下用戶輸入的數(shù)據(jù)并上傳至服務器端。

可以理解的是,實際操作時,用戶可以通過旋轉密碼盤來輸入根據(jù)提示信息得到的相應數(shù)據(jù),輸入數(shù)據(jù)時用戶只需將對應的數(shù)據(jù)旋轉到指定位置(如圖2中箭頭處)即可。當用戶松開時,用戶端記錄下用戶輸入的數(shù)據(jù),并會將記錄的數(shù)據(jù)與驗證碼信息中的md5信息一并上傳至服務器端。

步驟S7:服務器端對用戶端上傳的數(shù)據(jù)進行驗證,并返回驗證結果。實際操作時,步驟S7具體包括以下操作:

步驟S701:服務器端通過用戶端上傳的md5信息查詢本地是否存在與該md5信息對應的真實驗證碼,若不存在,則重新生成一組新的驗證碼信息發(fā)送至用戶端,轉入步驟S704;若存在,轉入步驟S702;

步驟S702:判斷用戶端上傳的數(shù)據(jù)是否與通過md5信息查詢到的真實驗證碼一致,若是,轉入步驟S703;若否,轉入步驟S704;

步驟S703:向用戶端返回驗證成功的狀態(tài);

步驟S704:向用戶端返回驗證失敗的狀態(tài)。

步驟S8:用戶端根據(jù)服務器端返回的驗證結果進行相應處理,并向用戶進行反饋。實際操作時,用戶端進行的相應處理可按照具體應用的需求具體而定。而本實施例中,用戶端會先判斷服務器端返回的驗證狀態(tài),若為驗證成功狀態(tài),則直接向用戶反饋驗證通過信息;若為驗證失敗狀態(tài),則會判斷服務器端是否重新發(fā)來有新的驗證碼信息,若是,則返回步驟S5,重新繪制圓形密碼盤并重新讓用戶進行輸入;若否,則證明用戶驗證錯誤,向用戶反饋驗證未通過信息。

參見圖3所示,本發(fā)明還提供了一種利用密碼盤實現(xiàn)驗證碼驗證的系統(tǒng),包括用戶端和服務器端;其中,用戶端包括請求發(fā)送單元、密碼盤繪制單元、數(shù)據(jù)記錄單元、驗證反饋單元;服務器端包括驗證信息生成單元、驗證處理單元。

所述請求發(fā)送單元用于:向服務器端發(fā)出驗證碼信息的請求。

所述驗證信息生成單元用于:收到用戶端發(fā)來的驗證碼信息的請求后,隨機選定真實驗證碼并生成相應驗證碼信息;根據(jù)真實驗證碼,經(jīng)過隨機選定的一種四則運算得到提示信息;將驗證碼信息和提示信息發(fā)送至用戶端。

進一步地,所述驗證信息生成單元生成驗證碼信息的具體流程為:收到用戶端發(fā)來的驗證碼信息的請求后,隨機生成若干個數(shù)字;從生成的若干個數(shù)字中隨機挑選一個數(shù)字作為真實驗證碼,并保存至本地的驗證碼臨時庫中;生成一個與真實驗證碼對應的md5信息,并臨時保存至本地;將隨機生成的若干個數(shù)字與所述md5信息組合,生成驗證碼信息。

更進一步地,所述驗證信息生成單元生成提示信息的具體流程為:若隨機選定的四則運算為加法運算,則先隨機獲取一個比真實驗證碼小的數(shù)字,記為X1;然后使用真實驗證碼去減X1,得到的數(shù)據(jù)記為X2;最后,生成內(nèi)容為“請選出X1和X2相加得到的數(shù)字”的提示信息。若隨機選定的四則運算為減法運算,則先隨機獲取一個比真實驗證碼大的數(shù)字,記為X1;然后使用X1去減真實驗證碼,得到的數(shù)據(jù)記為X2;最后,生成內(nèi)容為“請選出X1和X2相減得到的數(shù)字”的提示信息。若隨機選定的四則運算為乘法運算,則先判斷驗證碼是否為質數(shù),若是,則隨機轉換至其他四則運算來生成提示信息;若不是,則先將真實驗證碼除以2,看是否有余數(shù),如果有余數(shù)則重新將真實驗證碼除以3,再判斷是否余數(shù),如果還有余數(shù)則將真實驗證碼依次除下去,直至沒有余數(shù)為止;然后,將當前除數(shù)記為X1,將商記為X2;最后,生成內(nèi)容為“請選出X1和X2相乘得到的數(shù)字”的提示信息。若隨機選定的四則運算為除法運算,則使用真實驗證碼乘以一個隨機獲取的數(shù)據(jù),將隨機獲取的數(shù)據(jù)記為X1,將計算得到的數(shù)據(jù)記為X2;生成內(nèi)容為“請選出X1和X2相除得到的數(shù)字”的提示信息。

所述密碼盤繪制單元用于:收到服務器端發(fā)來的信息后,根據(jù)驗證碼信息繪制包含有真實驗證碼的圓形密碼盤,并展示提示信息。其具體流程為:收到服務器端發(fā)來的信息后,獲取驗證碼信息中隨機生成的若干個數(shù)字的個數(shù);用360°除以隨機生成的若干個數(shù)字的個數(shù),得到圓形密碼盤中每塊扇形分片的圓心角度數(shù);根據(jù)得到的各塊扇形分片的圓心角度數(shù)繪制圓形密碼盤,將驗證碼信息中隨機生成的若干個數(shù)字一一填入到扇形分片中;并展示驗證碼信息中的提示信息。

所述數(shù)據(jù)記錄單元用于:記錄下用戶通過旋轉密碼盤輸入的數(shù)據(jù),并上傳至服務器端。

所述驗證處理單元用于:對用戶端上傳的數(shù)據(jù)進行驗證,并返回驗證結果至用戶端。其具體流程為:通過用戶端上傳的md5信息查詢本地是否存在與該md5信息對應的真實驗證碼,若不存在,則重新生成一組新的驗證碼信息發(fā)送至用戶端,并向用戶端返回驗證失敗的狀態(tài);若存在,則判斷用戶端上傳的數(shù)據(jù)是否與通過md5信息查詢到的真實驗證碼一致,若是,向用戶端返回驗證成功的狀態(tài);若否,向用戶端返回驗證失敗的狀態(tài)。

所述驗證反饋單元用于:根據(jù)服務器端返回的驗證結果進行相應處理,并向用戶進行反饋。

需要說明的是:上述實施例提供的驗證碼驗證系統(tǒng)在進行具體操作時,僅以上述各功能單元的劃分進行舉例說明,實際應用中,可根據(jù)需要將上述功能分配由不同的功能單元完成,即將系統(tǒng)的內(nèi)部結構劃分成不同的功能單元,以完成以上描述的全部或者部分功能。

本發(fā)明不局限于上述實施方式,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內(nèi)。

本說明書中未作詳細描述的內(nèi)容屬于本領域專業(yè)技術人員公知的現(xiàn)有技術。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
青岛市| 柘城县| 克拉玛依市| 乌拉特中旗| 南涧| 浦北县| 邛崃市| 临夏市| 东明县| 仲巴县| 仁布县| 封开县| 山丹县| 科尔| 河池市| 辛集市| 葵青区| 故城县| 类乌齐县| 博乐市| 邢台市| 大安市| 康定县| 陆河县| 库尔勒市| 辽源市| 黑河市| 丰宁| 图木舒克市| 牟定县| 平度市| 丰原市| 许昌县| 曲松县| 潜江市| 德兴市| 德庆县| 文水县| 舟曲县| 晋城| 十堰市|