新四季網

一種利用密碼盤實現驗證碼驗證的方法及系統與流程

2023-04-27 02:32:11 1


本發明涉及驗證碼處理技術領域,具體來講是一種利用密碼盤實現驗證碼驗證的方法及系統。



背景技術:

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

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

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



技術實現要素:

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

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

本發明還提供一種利用密碼盤實現驗證碼驗證的系統,該系統包括用戶端和伺服器端;用戶端包括請求發送單元、密碼盤繪製單元、數據記錄單元、驗證反饋單元;伺服器端包括驗證信息生成單元、驗證處理單元;

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

本發明的有益效果在於:

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

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

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

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

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

附圖說明

圖1為本發明實施例中利用密碼盤實現驗證碼驗證的方法的流程圖;

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

圖3為本發明實施例中利用密碼盤實現驗證碼驗證的系統的結構框圖。

具體實施方式

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

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

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

步驟S2:伺服器端收到用戶端發來的驗證碼信息的請求後,會隨機選定真實驗證碼,並根據真實驗證碼生成對應的驗證碼信息。

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

步驟S201:伺服器端收到用戶端發來的驗證碼信息的請求後,隨機生成若干個數字。

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

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

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

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

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

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

若隨機選定的四則運算為加法運算,則先隨機獲取一個比真實驗證碼小的數字,記為X1;然後使用真實驗證碼去減X1,得到的數據記為X2;最後,生成內容為「請選出X1和X2相加得到的數字」的提示信息;

若隨機選定的四則運算為減法運算,則先隨機獲取一個比真實驗證碼大的數字,記為X1;然後使用X1去減真實驗證碼,得到的數據記為X2;最後,生成內容為「請選出X1和X2相減得到的數字」的提示信息;

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

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

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

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

步驟S5:用戶端收到伺服器端發來的信息後,根據驗證碼信息繪製包含有真實驗證碼的圓形密碼盤,並展示提示信息。

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

步驟S501:用戶端收到伺服器端發來的信息後,獲取驗證碼信息中隨機生成的若干個數字的個數。

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

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

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

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

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

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

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

步驟S703:向用戶端返回驗證成功的狀態;

步驟S704:向用戶端返回驗證失敗的狀態。

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

參見圖3所示,本發明還提供了一種利用密碼盤實現驗證碼驗證的系統,包括用戶端和伺服器端;其中,用戶端包括請求發送單元、密碼盤繪製單元、數據記錄單元、驗證反饋單元;伺服器端包括驗證信息生成單元、驗證處理單元。

所述請求發送單元用於:向伺服器端發出驗證碼信息的請求。

所述驗證信息生成單元用於:收到用戶端發來的驗證碼信息的請求後,隨機選定真實驗證碼並生成相應驗證碼信息;根據真實驗證碼,經過隨機選定的一種四則運算得到提示信息;將驗證碼信息和提示信息發送至用戶端。

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

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

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

所述數據記錄單元用於:記錄下用戶通過旋轉密碼盤輸入的數據,並上傳至伺服器端。

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

所述驗證反饋單元用於:根據伺服器端返回的驗證結果進行相應處理,並向用戶進行反饋。

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

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

本說明書中未作詳細描述的內容屬於本領域專業技術人員公知的現有技術。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀