驗證碼生成和驗證的處理方法及對應(yīng)的方法、裝置和系統(tǒng)的制作方法
【專利摘要】本申請公開了驗證碼生成和驗證的處理方法及對應(yīng)的方法、裝置和系統(tǒng)。包括:生成問題和對應(yīng)的答案;生成對應(yīng)的顏色值;根據(jù)所述問題生成問題圖片;將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片;在用戶端顯示所述驗證碼圖片和輸入單元,設(shè)置輸入顏色值為所述顏色值;接受輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片;從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率則驗證成功。利用本發(fā)明,可以提高驗證碼驗證的安全性。
【專利說明】驗證碼生成和驗證的處理方法及對應(yīng)的方法、裝置和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)據(jù)處理設(shè)備的數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種驗證碼生成和驗證的處理方法及對應(yīng)的方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]驗證碼生成和驗證技術(shù)是一種區(qū)分用戶是計算機還是人的公共安全自動識別技術(shù)程序。驗證碼生成和驗證技術(shù)可以防止:惡意破解網(wǎng)站密碼、刷票、在論壇網(wǎng)站上灌水等惡意行為,可以有效防止某個黑客對某一個特定注冊用戶用特定程序暴力破解方式進行不斷的登陸嘗試。
[0003]現(xiàn)有的驗證碼生成和驗證過程如下:系統(tǒng)生成一串隨機字符,將隨機字符按一定規(guī)則生成對應(yīng)的驗證碼圖片以及一個加密的字符串,然后在終端展示該驗證碼圖片和保存加密字符串,用戶看到驗證碼圖片后,輸入驗證碼圖片中的字符串,然后系統(tǒng)將用戶輸入的字符串和加密字符串提交到后臺系統(tǒng)進行驗證,如果符合則驗證通過,否則驗證失敗。
[0004]但是現(xiàn)有技術(shù)存在以下技術(shù)缺陷:
[0005]現(xiàn)有技術(shù)容易被暴力破解,安全系數(shù)太低。網(wǎng)絡(luò)黑客使用圖像識別技術(shù)就可以很容易地將驗證碼圖片(尤其是比較簡單的驗證碼圖片)中的字符串識別成相同或相近的字符串,比如對某一個驗證碼圖片識別出20個相近的字符串,那黑客只需將這20個字符串依次傳給后臺系統(tǒng)進行驗證,那么只需要驗證20次就有可能成功破解該驗證碼,造成安全隱串
■/Q1、Ο
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明的主要目的是提供一種驗證碼生成和驗證的處理方法及對應(yīng)的方法、裝置和系統(tǒng),以提高驗證碼被暴力破解的難度,提高驗證碼驗證的安全性。
[0007]本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0008]一種驗證碼生成和驗證的處理方法,包括:
[0009]生成問題和對應(yīng)的答案;
[0010]生成對應(yīng)的顏色值;根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題;將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片;
[0011]在用戶端顯示所述驗證碼圖片,顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值;
[0012]接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片;
[0013]從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率則驗證成功。
[0014]一種驗證碼生成和驗證方法,包括:
[0015]生成問題和對應(yīng)的答案;
[0016]生成對應(yīng)的顏色值,根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題,將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片;
[0017]接收修改后驗證碼圖片,從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率則驗證成功。
[0018]一種驗證碼人機交互方法,包括:
[0019]獲取驗證碼圖片及其對應(yīng)的顏色值,在用戶端顯示所述驗證碼圖片,顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值;
[0020]接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片,將該修改后驗證碼圖片上傳給數(shù)據(jù)驗證方。
[0021]一種驗證碼生成和驗證裝置,包括:
[0022]問題和答案生成模塊,用于生成問題和對應(yīng)的答案;
[0023]驗證碼圖片生成模塊,用于生成對應(yīng)的顏色值,根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題,將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片;
[0024]驗證模塊,用于接收驗證碼人機交互裝置上傳的修改后驗證碼圖片,從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率則驗證成功。
[0025]一種驗證碼人機交互裝置,包括:
[0026]顯示模塊,用于從驗證碼生成和驗證裝置獲取驗證碼圖片及其對應(yīng)的顏色值,在用戶端顯示所述驗證碼圖片,顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值;
[0027]響應(yīng)模塊,用于接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片,將修改后驗證碼圖片發(fā)送給驗證碼生成和驗證裝置。
[0028]一種驗證碼生成和驗證的處理系統(tǒng),包括所述的驗證碼生成和驗證裝置,以及所述的驗證碼人機交互裝置。
[0029]與現(xiàn)有技術(shù)相比,本發(fā)明首先要生成問題和對應(yīng)的答案以及對應(yīng)的顏色值;根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題;將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片;然后,本發(fā)明在用戶端顯示所述驗證碼圖片,將該驗證碼圖片的指定區(qū)域顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值,并在用戶端接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片;在驗證時,本發(fā)明從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率(如100%—致,或者可以是80%、90%等的一致率)則驗證成功,否則驗證失敗。
[0030]黑客雖然也可以用圖像識別技術(shù)識別本發(fā)明的驗證碼,但黑客卻不能直接將識別出來的結(jié)果發(fā)給后臺的驗證裝置進行驗證,因為本發(fā)明要求用戶端必須發(fā)送圖片數(shù)據(jù),故黑客需要將識別的結(jié)果與原圖片合并生成一個圖片才可以發(fā)出,而且合并時必須按照本發(fā)明的特定方式,即畫筆顏色值需要與該驗證碼圖片對應(yīng)的顏色值相同,否則無法識別出用戶輸入的字符,最終不能通過驗證,故暴力破解非常困難,提高了驗證碼驗證的安全性。
【專利附圖】
【附圖說明】
[0031]圖1為本發(fā)明所述驗證碼生成和驗證的處理方法的一種流程圖;
[0032]圖2為本發(fā)明所述驗證碼生成和驗證的處理方法的又一種流程示意圖;
[0033]圖3為本發(fā)明所述一種驗證碼圖片的顯示示意圖;
[0034]圖4為在驗證碼圖片的畫板中利用畫筆輸入了答案字符圖像的一種示意圖;
[0035]圖5為所合并的修改后驗證碼圖片的一種示意圖;
[0036]圖6為本發(fā)明所述驗證碼生成和驗證的處理系統(tǒng)的一種組成示意圖。
【具體實施方式】
[0037]下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
[0038]圖1為本發(fā)明所述驗證碼生成和驗證的處理方法的一種流程圖。參見圖1,本發(fā)明的驗證碼生成和驗證的處理方法具體包括:
[0039]步驟101、生成問題和對應(yīng)的答案。
[0040]步驟102、生成對應(yīng)的顏色值;根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題;將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片。
[0041]步驟103、在用戶端顯示所述驗證碼圖片,顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值。
[0042]步驟104、接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片。
[0043]步驟105、從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率(如可以是100%的一致率,或者可以80%、90%的一致率,所述一致率可以預(yù)先指定)則驗證成功,否則驗證失敗。
[0044]本發(fā)明在具體執(zhí)行時,分別由服務(wù)器端和用戶端執(zhí)行,其中上述步驟101、102和105在服務(wù)器端執(zhí)行,上述步驟103和104在用戶端執(zhí)行。
[0045]圖2為本發(fā)明所述驗證碼生成和驗證的處理方法的又一種流程示意圖。在該圖2中,標(biāo)識了服務(wù)器端和用戶端,其中服務(wù)器端具體執(zhí)行了所述驗證碼的生成和驗證方法,其中具體包括上述步驟101、102和105 ;所述用戶端具體執(zhí)行了所述驗證碼人機交互方法,其中具體包括了上述步驟103和104。所述服務(wù)器端和用戶端之間還包括相應(yīng)的交互操作。在本領(lǐng)域,通常所述服務(wù)器端也被稱為后臺,所述用戶端也被稱為前臺。
[0046]如圖2所示,服務(wù)器端的驗證碼的生成方法主要包括:
[0047]步驟201、生成問題和對應(yīng)的答案。
[0048]所述問題和答案可以根據(jù)指定的公式隨機生成,例如根生成的問題為:“a b c De上述字母哪個是大寫的? ”,對應(yīng)的答案為:“D”。
[0049]步驟202、生成對應(yīng)的顏色值,根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題,將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片。在服務(wù)器端,需要存儲所述驗證碼圖片和對應(yīng)的畫筆顏色值,待用戶端進行讀取。
[0050]所述顏色值也是隨機生成,但在優(yōu)選的實施方案中,該顏色值需要與問題圖片中所顯示的問題的顏色要有較大的區(qū)別,否則不利于后續(xù)步驟205中所述對修改后驗證碼圖片中的字符的識別。所述在問題圖片中需要顯示所述問題,例如所述問題為:“a b c D e上述字母哪個是大寫的? ”,那么對應(yīng)生成的問題圖片如圖3的圖片300所示。該問題的顏色值需要與所述隨機生成的顏色值相區(qū)別。圖3所顯示的圖片300也是驗證碼圖片的顯示效果。
[0051]之后如圖2所示,用戶端的驗證碼人機交互方法主要包括:
[0052]步驟203、從服務(wù)器端獲取驗證碼圖片及其對應(yīng)的顏色值,在用戶端顯示所述驗證碼圖片,并顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值。
[0053]在一種優(yōu)選實施例中,所述輸入單元可以是畫板,設(shè)置該輸入單元對應(yīng)的輸入顏色值通常是指設(shè)置該畫板對應(yīng)畫筆的顏色值。
[0054]所述顯示畫板可以顯示在所述驗證碼圖片內(nèi)部,也可以顯示在屏幕上的其它位置。但是在一種優(yōu)選實施例中,所述顯示畫板具體是:在所述驗證碼圖片內(nèi)的指定區(qū)域顯示畫板。如圖3所示,在生成所述驗證碼圖片300時,就可以在所述驗證碼圖片300中留出可以放置畫板的空白位置301,該空白位置301就是用于顯示畫板的指定區(qū)域。所述顯示畫板和設(shè)置畫板顏色值等技術(shù)可以采用現(xiàn)有成熟的技術(shù)手段。例如在采用超文本標(biāo)記語言(HTML,Hypertext Markup Language)第五版的網(wǎng)絡(luò)用戶端來說,可以采用HTML5的canvas技術(shù)在用戶端顯示畫板和設(shè)置畫筆顏色。
[0055]步驟204、接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片,將該修改后驗證碼圖片上傳給數(shù)據(jù)驗證方,即服務(wù)器端。
[0056]此處,由于是利用畫筆向畫板輸入字符圖像,因此本發(fā)明尤其適用于采用觸摸屏技術(shù)的用戶端,例如采用觸摸屏的智能終端,包括但不限于智能手機、掌上電腦、平板電腦、智能電視(Smart TV)等。采用畫板和畫筆輸入字符圖像,可以非常方便用戶進行操作。
[0057]例如,用戶根據(jù)圖3所示的驗證碼圖片300中的問題,計算得到答案18,將該答案利用畫筆輸入到畫板301中,如圖4所示為在驗證碼圖片的畫板中利用畫筆輸入了答案字符圖像的一種示意圖,其中答案字符圖像“18”的顏色值為所述驗證碼圖片300所對應(yīng)的顏色值。用戶端會將所述字符圖像與所述驗證碼圖片合并,得到修改后的驗證碼圖片,如圖5所示為所合并的修改后驗證碼圖片500,其中包括原驗證碼圖片(其中包括問題“a b c D e上述字母哪個是大寫的? ”)以及用戶利用畫筆輸入的答案字符圖像,即“D”。用戶端需要將該修改后驗證碼圖片500上傳給服務(wù)器端進行驗證。
[0058]之后,服務(wù)器端的驗證碼驗證方法主要包括:
[0059]步驟205、服務(wù)器端接收用戶端上傳的修改后驗證碼圖片,從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,這樣可以提取出所述圖5中的答案字符“D”,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率則驗證成功,否則驗證失敗。
[0060]在一種優(yōu)選實施方式中,在生成所述問題圖片后,進一步包括:獲取時間戳,將該時間戳連同所述問題對應(yīng)的答案和顏色值一起加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片;在接收所述修改后驗證碼圖片后、根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符之前,進一步包括:從所述修改后驗證碼圖片中提取時間戳,確定該時間戳與當(dāng)前時間之間的時差,判斷該時差是否超出預(yù)設(shè)的時限,如果超出則判定驗證失敗,否則繼續(xù)后續(xù)步驟。
[0061]在又一種優(yōu)選實施例中,所述將該時間戳連同所述問題對應(yīng)的答案和顏色值一起加載到所述圖片的文件數(shù)據(jù)中,具體包括:將所述時間戳、所述問題對應(yīng)的答案和顏色值,使用私有密鑰進行加密,得到一加密字符串,將該加密字符串加載到所述圖片的文件數(shù)據(jù)中;所述從所述修改后驗證碼圖片中提取所述時間戳、顏色值和答案,具體包括:從所述修改后驗證碼圖片中提取所述加密字符串,利用所述私有密鑰對該加密字符串進行解密,得到所述時間戳、顏色值和答案。
[0062]在進一步的實施例中,所述將加密字符串加載到所述圖片的文件數(shù)據(jù)中,具體包括:
[0063]將所述加密字符串以隱藏方式添加到圖片數(shù)據(jù)中;
[0064]或者,將所述加密字符串添加到所述圖片的文件頭中;
[0065]或者,將所述加密字符串添加到所述圖片文件的文件名中。
[0066]所述將所述加密字符串以隱藏方式添加到圖片數(shù)據(jù)中,例如具體可以為:將所述加密字符串的二進制數(shù)據(jù)添加到所述圖片的二進制數(shù)據(jù)的頭部或尾部。
[0067]所述從修改后驗證碼圖片中提取所述顏色值和答案以及時間戳,具體包括:
[0068]從所述圖片的二進制數(shù)據(jù)的頭部或尾部提取出所述加密字符串的二進制數(shù)據(jù),轉(zhuǎn)換為加密字符串,并利用所述私有密鑰進行解密,得到其中的時間戳、顏色值和答案;
[0069]或者,從所述圖片的文件頭中提取出所述加密字符串,并利用所述私有密鑰進行解密,得到其中的時間戳、顏色值和答案;
[0070]或者,從所述圖片文件的文件名中提取出所述加密字符串,并利用所述私有密鑰進行解密,得到其中的時間戳、顏色值和答案。
[0071 ] 在一種優(yōu)選實施例中,所述根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,具體包括:
[0072]對所述修改后驗證碼圖片中的每個像素進行處理,如果像素顏色為所述顏色值則將該像素顏色變成指定色A,如果像素顏色不為所述顏色值則將該素材顏色變成指定色B,所述指定色A和指定色B具有指定幅度的色差;例如指定色A為黑色,指定色B為白色,這樣處理完成后得到一張純黑白圖片,該黑白分明的圖片非常有利于圖像字符識別工具的識另IJ。對經(jīng)過上述處理后的修改后驗證碼圖片進行字符識別,得到一組識別結(jié)果,將與修改后驗證碼圖片中的字符相似度最高的一個識別結(jié)果作為最終的識別出的字符。所述進行字符識別的具體方法可以采用現(xiàn)有成熟的圖像字符識別技術(shù),例如目前有成熟的圖像字符識別的軟件或工具等,直接將所述修改后驗證碼圖片輸入該圖像字符識別軟件中,該圖像字符識別軟件就可以輸出識別結(jié)果。
[0073]與上述方法對應(yīng),本發(fā)明公開了一種驗證碼生成和驗證的處理系統(tǒng)。如圖6為本發(fā)明所述驗證碼生成和驗證的處理系統(tǒng)的一種組成示意圖。參見圖6,該處理系統(tǒng)包括設(shè)置在服務(wù)器端的驗證碼生成和驗證裝置601,以及設(shè)置在用戶端的驗證碼人機交互裝置602。
[0074]所述驗證碼生成和驗證裝置601具體包括:
[0075]問題和答案生成模塊611,用于生成問題和對應(yīng)的答案。
[0076]驗證碼圖片生成模塊612,用于生成對應(yīng)的顏色值,根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題,將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片,將所述驗證碼圖片和對應(yīng)的顏色值對應(yīng)存儲。
[0077]驗證模塊613,用于接收驗證碼人機交互裝置602上傳的修改后驗證碼圖片,從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率則驗證成功,否則驗證失敗。當(dāng)然,驗證模塊613最后還要將成功或失敗的驗證結(jié)果返回給用戶端。
[0078]所述驗證碼人機交互裝置602具體包括:
[0079]顯示模塊621,用于從驗證碼生成和驗證裝置601獲取驗證碼圖片及其對應(yīng)的顏色值,在用戶端顯示所述驗證碼圖片,顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值。在一種優(yōu)選實施方式中,所述顯示模塊具體用于:在所述驗證碼圖片內(nèi)的指定區(qū)域顯示畫板。
[0080]響應(yīng)模塊622,用于接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片,將修改后驗證碼圖片發(fā)送給驗證碼生成和驗證裝置601。當(dāng)然,該響應(yīng)模塊622還需要接收驗證模塊613返回的驗證是否成功或失敗的驗證結(jié)果,將驗證結(jié)果返回給所述顯示模塊621以顯示在用戶端,從而使用戶得知驗證結(jié)果。
[0081]在一種優(yōu)選實施方式中,所述驗證碼圖片生成模塊612進一步用于:獲取時間戳,將該時間戳連同所述問題對應(yīng)的答案和顏色值一起加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片。所述驗證模塊613進一步用于:在得到所述修改后驗證碼圖片后、根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符之前,進一步從所述修改后驗證碼圖片中提取時間戳,確定該時間戳與當(dāng)前時間之間的時差,判斷該時差是否超出預(yù)設(shè)的時限,如果超出則判定驗證失敗,否則繼續(xù)后續(xù)操作。
[0082]在進一步的優(yōu)選實施例中,所述驗證碼圖片生成模塊612進一步用于:將所述時間戳、所述問題對應(yīng)的答案和顏色值,使用私有密鑰進行加密,得到一加密字符串,將該加密字符串加載到所述圖片的文件數(shù)據(jù)中;所述驗證模塊613進一步用于:從所述修改后驗證碼圖片中提取所述加密字符串,利用所述私有密鑰對該加密字符串進行解密,得到所述時間戳、顏色值和答案。
[0083]在進一步的優(yōu)選實施例中,所述驗證碼圖片生成模塊612具體用于:將所述加密字符串以隱藏方式添加到圖片數(shù)據(jù)中;或者,將所述加密字符串添加到所述圖片的文件頭中;或者,將所述加密字符串添加到所述圖片文件的文件名中。
[0084]在一種優(yōu)選實施例中,所述驗證模塊613具體用于:對所述修改后驗證碼圖片中的每個像素進行處理,如果像素顏色為所述顏色值則將該像素顏色變成指定色A,如果像素顏色不為所述顏色值則將該素材顏色變成指定色B,所述指定色A和指定色B具有指定幅度的色差;對經(jīng)過上述處理后的修改后驗證碼圖片進行字符識別,得到一組識別結(jié)果,將與修改后驗證碼圖片中的字符相似度最高的一個識別結(jié)果作為最終的識別出的字符。
[0085]下面以一個更為具體的場景實施例來進一步描述本發(fā)明的技術(shù)方案,主要包括:
[0086]位于服務(wù)器端的問題和答案生成模塊611根據(jù)隨機生成問題和答案。例如隨機生成的問題為:“a b c D e上述字母哪個是大寫的? ”,對應(yīng)的答案為:“D”。
[0087]位于服務(wù)器端的驗證碼圖片生成模塊612首先生成一個驗證信息供后續(xù)驗證使用,生成方法為:獲取當(dāng)前時間戳,在后臺隨機生成一個畫筆顏色值;將上述隨機生成的答案+所述當(dāng)前時間戳+所述畫筆顏色,這三個信息使用私有密鑰(該私有密鑰可以自定義設(shè)定)進行加密,得到一個加密驗證字符串,即一個驗證信息。
[0088]其次,所述驗證碼圖片生成模塊612將上述隨機生成的問題生成一個問題圖片,該問題圖片中包含一片供用戶寫畫的空白區(qū)域,如圖3所述的指定區(qū)域301 ;并將所述加密驗證字符串加載到該圖片文件中,該圖片文件就成為驗證碼圖片。同時,在服務(wù)器端存儲所述驗證碼圖片和對應(yīng)的畫筆顏色值,待用戶端的驗證碼人機交互模塊進行讀取。
[0089]位于用戶端的驗證碼人機交互裝置602從服務(wù)器端讀取所述的驗證碼圖片及所述對應(yīng)的畫筆顏色值,在用戶端上顯示所述驗證碼圖片,并將該驗證碼圖片作為可編輯的畫板(即驗證碼圖片空白的區(qū)域為畫板),此處具體可以使用html5的canvas技術(shù)將所述驗證碼圖片的圖片空白區(qū)域設(shè)置為可編輯的畫板,并設(shè)置對應(yīng)的輸入顏色值為從所述服務(wù)器端讀取到的畫筆顏色值。此后,用戶根據(jù)驗證碼圖片上面的問題計算出結(jié)果后直接在畫板上畫出結(jié)果,該驗證碼人機交互裝置602接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后的驗證碼圖片;完成后在用戶點提交按鈕后該驗證碼人機交互裝置602將所述修改后驗證碼圖片傳給服務(wù)器端的驗證模塊進行驗證。
[0090]位于服務(wù)器端的驗證模塊613在接收到驗證碼人機交互裝置602上傳的戶修改后驗證碼圖片后,進行驗證,驗證的具體步驟包括:
[0091]1)接收所述驗證碼人機交互裝置602上傳的修改后驗證碼圖片;
[0092]2)提取圖片中的加密字符串,然后用私有密鑰進行解密,得到問題的正確答案、時間戳和畫筆顏色;
[0093]3)將解密出來的時間戳與當(dāng)前時間比較,如果超出超時限制則判定驗證失敗,否則繼續(xù)后續(xù)步驟;
[0094]4)結(jié)合畫筆顏色和圖片進行圖像處理,智能識別出用戶輸入的字符;
[0095]5)將識別出的字符與加密串里面的答案比較,如果一致則判定驗證通過,否則判定驗證失敗。
[0096]另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理單元中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。所述各實施例的功能模塊可以位于一個終端或網(wǎng)絡(luò)節(jié)點,或者也可以分布到多個終端或網(wǎng)絡(luò)節(jié)點上。
[0097]另外,本發(fā)明的每一個實施例可以通過由數(shù)據(jù)處理設(shè)備如計算機執(zhí)行的數(shù)據(jù)處理程序來實現(xiàn)。顯然,數(shù)據(jù)處理程序構(gòu)成了本發(fā)明。此外,通常存儲在一個存儲介質(zhì)中的數(shù)據(jù)處理程序通過直接將程序讀取出存儲介質(zhì)或者通過將程序安裝或復(fù)制到數(shù)據(jù)處理設(shè)備的存儲設(shè)備(如硬盤和或內(nèi)存)中執(zhí)行。因此,這樣的存儲介質(zhì)也構(gòu)成了本發(fā)明。存儲介質(zhì)可以使用任何類型的記錄方式,例如紙張存儲介質(zhì)(如紙帶等)、磁存儲介質(zhì)(如軟盤、硬盤、閃存等)、光存儲介質(zhì)(如CD-ROM等)、磁光存儲介質(zhì)(如M0等)等。
[0098]因此本發(fā)明還公開了一種存儲介質(zhì),其中存儲有數(shù)據(jù)處理程序,該數(shù)據(jù)處理程序用于執(zhí)行本發(fā)明上述方法的任何一種實施例。
[0099]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1.一種驗證碼生成和驗證的處理方法,其特征在于,包括: 生成問題和對應(yīng)的答案; 生成對應(yīng)的顏色值;根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題;將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片; 在用戶端顯示所述驗證碼圖片,顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值; 接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片; 從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率則驗證成功。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 在生成所述問題圖片后,進一步包括:獲取時間戳,將該時間戳連同所述問題對應(yīng)的答案和顏色值一起加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片; 在得到所述修改后驗證碼圖片后、根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符之前,進一步包括:從所述修改后驗證碼圖片中提取時間戳,確定該時間戳與當(dāng)前時間之間的時差,判斷該時差是否超出預(yù)設(shè)的時限,如果超出則判定驗證失敗,否則繼續(xù)后續(xù)步驟。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述將該時間戳連同所述問題對應(yīng)的答案和顏色值一起加載到所述圖片的文件數(shù)據(jù)中,具體包括:將所述時間戳、所述問題對應(yīng)的答案和顏色值,使用私有密鑰進行加密,得到一加密字符串,將該加密字符串加載到所述圖片的文件數(shù)據(jù)中; 所述從所述修改后驗證碼圖片中提取所述時間戳、顏色值和答案,具體包括:從所述修改后驗證碼圖片中提取所述加密字符串,利用所述私有密鑰對該加密字符串進行解密,得到所述時間戳、顏色值和答案。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述將加密字符串加載到所述圖片的文件數(shù)據(jù)中,具體包括: 將所述加密字符串以隱藏方式添加到圖片數(shù)據(jù)中; 或者,將所述加密字符串添加到所述圖片的文件頭中; 或者,將所述加密字符串添加到所述圖片文件的文件名中。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,具體包括: 對所述修改后驗證碼圖片中的每個像素進行處理,如果像素顏色為所述顏色值則將該像素顏色變成指定色A,如果像素顏色不為所述顏色值則將該素材顏色變成指定色B,所述指定色A和指定色B具有指定幅度的色差; 對經(jīng)過上述處理后的修改后驗證碼圖片進行字符識別,得到一組識別結(jié)果,將與修改后驗證碼圖片中的字符相似度最高的一個識別結(jié)果作為最終的識別出的字符。
6.一種驗證碼生成和驗證方法,其特征在于,包括: 生成問題和對應(yīng)的答案; 生成對應(yīng)的顏色值,根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題,將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片; 接收修改后驗證碼圖片,從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率則驗證成功。
7.根據(jù)權(quán)利要求6所述的驗證碼生成和驗證方法,其特征在于, 在生成所述問題圖片后,進一步包括:獲取時間戳,將該時間戳連同所述問題對應(yīng)的答案和顏色值一起加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片; 在接收所述修改后驗證碼圖片后、根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符之前,進一步包括:從所述修改后驗證碼圖片中提取時間戳,確定該時間戳與當(dāng)前時間之間的時差,判斷該時差是否超出預(yù)設(shè)的時限,如果超出則判定驗證失敗,否則繼續(xù)后續(xù)步驟。
8.根據(jù)權(quán)利要求7所述的驗證碼生成和驗證方法,其特征在于, 所述將該時間戳連同所述問題對應(yīng)的答案和顏色值一起加載到所述圖片的文件數(shù)據(jù)中,具體包括:將所述時間戳、所述問題對應(yīng)的答案和顏色值,使用私有密鑰進行加密,得到一加密字符串,將該加密字符串加載到所述圖片的文件數(shù)據(jù)中; 所述從所述修改后驗證碼圖片中提取所述時間戳、顏色值和答案,具體包括:從所述修改后驗證碼圖片中提取所述加密字符串,利用所述私有密鑰對該加密字符串進行解密,得到所述時間戳、顏色值和答案。
9.根據(jù)權(quán)利要求8所述的驗證碼生成和驗證方法,其特征在于, 所述將加密字符串加載到所述圖片的文件數(shù)據(jù)中,具體包括: 將所述加密字符串以隱藏方式添加到圖片數(shù)據(jù)中; 或者,將所述加密字符串添加到所述圖片的文件頭中; 或者,將所述加密字符串添加到所述圖片文件的文件名中。
10.根據(jù)權(quán)利要求6所述的驗證碼生成和驗證方法,其特征在于,所述根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,具體包括: 對所述修改后驗證碼圖片中的每個像素進行處理,如果像素顏色為所述顏色值則將該像素顏色變成指定色A,如果像素顏色不為所述顏色值則將該素材顏色變成指定色B,所述指定色A和指定色B具有指定幅度的色差; 對經(jīng)過上述處理后的修改后驗證碼圖片進行字符識別,得到一組識別結(jié)果,將與修改后驗證碼圖片中的字符相似度最高的一個識別結(jié)果作為最終的識別出的字符。
11.一種驗證碼人機交互方法,其特征在于,包括: 獲取驗證碼圖片及其對應(yīng)的顏色值,在用戶端顯示所述驗證碼圖片,顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值; 接受所述輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片,將該修改后驗證碼圖片上傳給數(shù)據(jù)驗證方。
12.根據(jù)權(quán)利要求11所述的驗證碼人機交互方法,其特征在于,所述顯示輸入單元,具體包括:在所述驗證碼圖片內(nèi)的指定區(qū)域顯示畫板。
13.一種驗證碼生成和驗證裝置,其特征在于,包括: 問題和答案生成模塊,用于生成問題和對應(yīng)的答案; 驗證碼圖片生成模塊,用于生成對應(yīng)的顏色值,根據(jù)所述問題生成問題圖片,該問題圖片中顯示所述問題,將所述問題對應(yīng)的答案和顏色值加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片; 驗證模塊,用于接收驗證碼人機交互裝置上傳的修改后驗證碼圖片,從所述修改后驗證碼圖片中提取所述顏色值和答案,根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符,將識別出的字符與所述答案比較,如果達到設(shè)定的一致率則驗證成功。
14.根據(jù)權(quán)利要求13所述的驗證碼生成和驗證裝置,其特征在于, 所述驗證碼圖片生成模塊進一步用于:獲取時間戳,將該時間戳連同所述問題對應(yīng)的答案和顏色值一起加載到所述圖片的文件數(shù)據(jù)中,得到對應(yīng)的驗證碼圖片; 所述驗證模塊進一步用于:在得到所述修改后驗證碼圖片后、根據(jù)所述顏色值識別出修改后驗證碼圖片中相同顏色的字符之前,進一步從所述修改后驗證碼圖片中提取時間戳,確定該時間戳與當(dāng)前時間之間的時差,判斷該時差是否超出預(yù)設(shè)的時限,如果超出則判定驗證失敗,否則繼續(xù)后續(xù)操作。
15.根據(jù)權(quán)利要求14所述的驗證碼生成和驗證裝置,其特征在于, 所述驗證碼圖片生成模塊進一步用于:將所述時間戳、所述問題對應(yīng)的答案和顏色值,使用私有密鑰進行加密,得到一加密字符串,將該加密字符串加載到所述圖片的文件數(shù)據(jù)中; 所述驗證模塊進一步用于:從所述修改后驗證碼圖片中提取所述加密字符串,利用所述私有密鑰對該加密字符串進行解密,得到所述時間戳、顏色值和答案。
16.根據(jù)權(quán)利要求15所述的驗證碼生成和驗證裝置,其特征在于,所述驗證碼圖片生成模塊具體用于: 將所述加密字符串以隱藏方式添加到圖片數(shù)據(jù)中; 或者,將所述加密字符串添加到所述圖片的文件頭中; 或者,將所述加密字符串添加到所述圖片文件的文件名中。
17.根據(jù)權(quán)利要求13所述的驗證碼生成和驗證裝置,其特征在于,所述驗證模塊具體用于: 對所述修改后驗證碼圖片中的每個像素進行處理,如果像素顏色為所述顏色值則將該像素顏色變成指定色A,如果像素顏色不為所述顏色值則將該素材顏色變成指定色B,所述指定色A和指定色B具有指定幅度的色差; 對經(jīng)過上述處理后的修改后驗證碼圖片進行字符識別,得到一組識別結(jié)果,將與修改后驗證碼圖片中的字符相似度最高的一個識別結(jié)果作為最終的識別出的字符。
18.一種驗證碼人機交互裝置,其特征在于,包括: 顯示模塊,用于從驗證碼生成和驗證裝置獲取驗證碼圖片及其對應(yīng)的顏色值,在用戶端顯示所述驗證碼圖片,顯示輸入單元,設(shè)置該輸入單元對應(yīng)的輸入顏色值為所述驗證碼圖片對應(yīng)的顏色值; 響應(yīng)模塊,用于接受通過輸入單元輸入的字符圖像,將所述字符圖像與所述驗證碼圖片合并,得到修改后驗證碼圖片,將修改后驗證碼圖片發(fā)送給驗證碼生成和驗證裝置。
19.根據(jù)權(quán)利要求18所述驗證碼人機交互裝置,其特征在于,所述顯示模塊具體用于:在所述驗證碼圖片內(nèi)的指定區(qū)域顯示畫板。
20.一種驗證碼生成和驗證的處理系統(tǒng),其特征在于,包括如權(quán)利要求13至17任一項所述的驗證碼生成和驗證裝置,以及如權(quán)利要求18或19所述的驗證碼人機交互裝置。
【文檔編號】H04L9/32GK104426879SQ201310394006
【公開日】2015年3月18日 申請日期:2013年9月3日 優(yōu)先權(quán)日:2013年9月3日
【發(fā)明者】劉華忠 申請人:騰訊科技(北京)有限公司