驗(yàn)證碼處理方法和裝置制造方法
【專利摘要】本申請公開了一種驗(yàn)證碼處理方法,包括:隨機(jī)生成兩組驗(yàn)證碼,一組作為真實(shí)驗(yàn)證碼,另一組作為干擾驗(yàn)證碼;生成驗(yàn)證碼圖片,其中包括真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景;獲取驗(yàn)證碼背景圖片,對所述真實(shí)驗(yàn)證碼和驗(yàn)證碼背景圖片進(jìn)行相同的鏤空處理,將所述驗(yàn)證碼圖片置于所述驗(yàn)證碼背景圖片之上進(jìn)行合并得到合并圖片,其中所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合;將所述合并圖片顯示在頁面背景上,且頁面背景顏色與所述真實(shí)驗(yàn)證碼的顏色一致;在頁面背景上顯示可視區(qū)域,該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致;監(jiān)測對所述合并圖片的移動指令,根據(jù)移動指令將所述合并圖片移動到所述可視區(qū)域之上。本發(fā)明可以提高機(jī)器人程序識別驗(yàn)證碼的難度,提高驗(yàn)證碼的安全性。
【專利說明】
驗(yàn)證碼處理方法和裝置
【技術(shù)領(lǐng)域】
[0001]本申請涉及計(jì)算機(jī)和互聯(lián)網(wǎng)數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種驗(yàn)證碼處理方法和
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]在計(jì)算機(jī)和互聯(lián)網(wǎng)數(shù)據(jù)處理【技術(shù)領(lǐng)域】,驗(yàn)證碼是一種區(qū)分用戶是機(jī)器人程序還是人的公共全自動程序。驗(yàn)證碼通常使用一些線條和一些不規(guī)則的字符組成,用戶必須讀取這些字符,然后輸入這些字符才能成功登陸網(wǎng)站。因?yàn)槿丝梢院苋菀鬃x出圖片中的字符,但如果是一段客戶端攻擊程序(即機(jī)器人程序),通過一般手段是很難識別所述驗(yàn)證碼的。
[0003]驗(yàn)證碼的作用可以防止:惡意破解密碼、刷票、論壇灌水,有效防止某個黑客對某一個特定注冊用戶用特定程序暴力破解方式進(jìn)行不斷的登陸嘗試,實(shí)際上用驗(yàn)證碼是現(xiàn)在很多網(wǎng)站通行的登錄方式。
[0004]但是,目前的驗(yàn)證碼技術(shù)只是隨機(jī)生成一張還有隨機(jī)字符串的圖片,現(xiàn)在也出現(xiàn)了一些更加智能的可以識別圖片內(nèi)容的機(jī)器人程序,這種機(jī)器人程序具有存儲有大量字符圖片的數(shù)據(jù)庫,在進(jìn)行惡意攻擊時,這種機(jī)器人程序可以對驗(yàn)證碼圖片中的每一個字符進(jìn)行摳圖,然后利用該字符摳圖與數(shù)據(jù)庫中的字符圖片進(jìn)行比對分析,找到與字符摳圖相似度最高的字符圖片,將該字符圖片對應(yīng)的字符作為識別出的字符,從而自動識別破譯出驗(yàn)證碼圖片中的字符串。
[0005]現(xiàn)有技術(shù)的驗(yàn)證碼技術(shù)在面對上述機(jī)器人程序時,驗(yàn)證碼很容易被機(jī)器人破譯,安全性較低,導(dǎo)致惡意攻擊方利用機(jī)器人對互聯(lián)網(wǎng)應(yīng)用進(jìn)行大量重復(fù)的操作,導(dǎo)致各類互聯(lián)網(wǎng)應(yīng)用重則癱瘓,輕則損失各類虛擬資源,讓服務(wù)提供企業(yè)和正常用戶的利益飽受侵害。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明的主要目的是提供一種驗(yàn)證碼處理方法和裝置,可以提高機(jī)器人識別驗(yàn)證碼的難度,提高驗(yàn)證碼的安全性。
[0007]本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0008]一種驗(yàn)證碼處理方法,包括:
[0009]隨機(jī)生成兩組驗(yàn)證碼,一組作為真實(shí)驗(yàn)證碼,另一組作為干擾驗(yàn)證碼;
[0010]生成驗(yàn)證碼圖片,其中包括真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景;
[0011 ] 獲取驗(yàn)證碼背景圖片,對所述真實(shí)驗(yàn)證碼和驗(yàn)證碼背景圖片進(jìn)行相同的鏤空處理,將所述驗(yàn)證碼圖片置于所述驗(yàn)證碼背景圖片之上進(jìn)行合并得到合并圖片,其中所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合;
[0012]將所述合并圖片顯示在頁面背景上,且頁面背景顏色與所述真實(shí)驗(yàn)證碼的顏色一致;在頁面背景上顯示可視區(qū)域,該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致;
[0013]監(jiān)測對所述合并圖片的移動指令,根據(jù)移動指令將所述合并圖片移動到所述可視區(qū)域之上。
[0014]在一種優(yōu)選實(shí)施例中,所述移動指令為對合并圖片的拖拽指令。
[0015]在一種優(yōu)選實(shí)施例中,所述生成驗(yàn)證碼圖片,具體包括:為所述每一組驗(yàn)證碼對應(yīng)生成一張驗(yàn)證碼圖片,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景。
[0016]在一種優(yōu)選實(shí)施例中,所述隨機(jī)生成兩組驗(yàn)證碼,具體包括:
[0017]利用預(yù)定密鑰生成密文;
[0018]根據(jù)當(dāng)前用戶的訪問特征信息確定該當(dāng)前用戶對應(yīng)的難度等級;
[0019]根據(jù)所確定的難度等級,從所述密文中隨機(jī)獲取兩組字符串作為驗(yàn)證碼,其中難度等級越高,驗(yàn)證碼的字符串越復(fù)雜。
[0020]在一種優(yōu)選實(shí)施例中,所述利用密鑰生成密文,具體包括:獲取當(dāng)前用戶的IP地址和瀏覽器類型,將所述IP地址、瀏覽器類型和所述預(yù)定密鑰組合成字符串,再經(jīng)加密算法進(jìn)行不可逆加密,生成一串密文。
[0021]在一種優(yōu)選實(shí)施例中,所述根據(jù)當(dāng)前用戶的訪問特征信息確定該當(dāng)前用戶對應(yīng)的難度等級,具體包括:
[0022]獲取當(dāng)前用戶的IP地址和或?yàn)g覽器類型;
[0023]根據(jù)預(yù)定的不同難度等級對應(yīng)的IP地址范圍、瀏覽器類型、和或相同IP地址的請求間隔,判斷當(dāng)前用戶的IP地址和或?yàn)g覽器類型所對應(yīng)的難度等級;
[0024]將該難度等級確定為該當(dāng)前用戶對應(yīng)的難度等級。
[0025]在一種優(yōu)選實(shí)施例中,在所述生成驗(yàn)證碼圖片之后,對所述驗(yàn)證碼圖片進(jìn)行鏤空處理之前,進(jìn)一步包括:對所述驗(yàn)證碼圖片中的驗(yàn)證碼進(jìn)行扭曲效果處理。
[0026]在一種優(yōu)選實(shí)施例中,所述對所述驗(yàn)證碼圖片中的驗(yàn)證碼進(jìn)行扭曲效果處理,具體包括:
[0027]創(chuàng)建一個與驗(yàn)證碼圖片的尺寸相同的新畫布,把原驗(yàn)證碼圖片按逐個像素的方式把每個像素都復(fù)制到該畫布上,在該新畫布上的像素點(diǎn)位置通過正玄函數(shù)f(X)=sin(a*2 π *y/height)對像素點(diǎn)的y軸坐標(biāo)進(jìn)行處理,公式中f (x)為新畫布上的像素點(diǎn)的y軸坐標(biāo),y為原驗(yàn)證碼圖片的相同像素點(diǎn)的y軸坐標(biāo),height為原驗(yàn)證碼圖片的高度。
[0028]在一種優(yōu)選實(shí)施例中,該方法進(jìn)一步包括:監(jiān)測在輸入框輸入的字符串,判斷該字符串是否與所述真實(shí)驗(yàn)證碼一致,若一致則驗(yàn)證通過,否則驗(yàn)證失敗。
[0029]一種驗(yàn)證碼處理裝置,包括:
[0030]驗(yàn)證碼生成模塊,用于隨機(jī)生成兩組驗(yàn)證碼,一組作為真實(shí)驗(yàn)證碼,另一組作為干擾驗(yàn)證碼;
[0031]驗(yàn)證碼圖片生成模塊,用于生成驗(yàn)證碼圖片,其中包括真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景;
[0032]合并圖片生成模塊,用于獲取驗(yàn)證碼背景圖片,對所述真實(shí)驗(yàn)證碼和驗(yàn)證碼背景圖片進(jìn)行相同的鏤空處理,將所述驗(yàn)證碼圖片置于所述驗(yàn)證碼背景圖片之上進(jìn)行合并得到合并圖片,其中所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合;
[0033]驗(yàn)證頁面生成模塊,用于將所述合并圖片顯示在頁面背景上,且頁面背景顏色與所述真實(shí)驗(yàn)證碼的顏色一致;在頁面背景上顯示可視區(qū)域,該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致;
[0034]移動模塊,用于監(jiān)測對所述合并圖片的移動指令,根據(jù)移動指令將所述合并圖片移動到所述可視區(qū)域之上。
[0035]與現(xiàn)有技術(shù)相比,本發(fā)明隨機(jī)生成兩組驗(yàn)證碼,一組作為真實(shí)驗(yàn)證碼,另一組作為干擾驗(yàn)證碼;并生成驗(yàn)證碼圖片,其中包括真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景;然后對其中的真實(shí)驗(yàn)證碼和驗(yàn)證碼背景圖片進(jìn)行相同的鏤空處理,將所述驗(yàn)證碼圖片置于所述驗(yàn)證碼背景圖片之上進(jìn)行合并得到合并圖片,其中所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合;將所述合并圖片顯示在頁面背景上,且頁面背景顏色與所述真實(shí)驗(yàn)證碼的顏色一致,這樣使人眼識別不出該真實(shí)驗(yàn)證碼,而只能看到干擾驗(yàn)證碼;之后在頁面背景上顯示可視區(qū)域,該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致;監(jiān)測對所述合并圖片的移動指令,根據(jù)移動指令將所述合并圖片移動到所述可視區(qū)域之上,這時,由于該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致,從而是人眼識別出真實(shí)驗(yàn)證碼非鏤空塊與可視區(qū)域的顏色反差,使人眼識別出真實(shí)驗(yàn)證碼。由于本發(fā)明需要通過移動指令,并將合并圖片移動到可視區(qū)域之上才可以顯示出真實(shí)驗(yàn)證碼,而該移動指令的發(fā)出和移動到可視區(qū)域之上的操作,對于機(jī)器人程序來說是非常難做到的,因此本發(fā)明可以提高機(jī)器人程序識別驗(yàn)證碼的難度,提高驗(yàn)證碼的安全性。
【專利附圖】
【附圖說明】
[0036]圖1為本發(fā)明所述驗(yàn)證碼處理方法的一種流程圖;
[0037]圖2為本發(fā)明所生成的驗(yàn)證碼圖片的一種示意圖;
[0038]圖3所示為一張驗(yàn)證碼背景圖片的示意圖;
[0039]圖4a為本發(fā)明一種實(shí)施例中所采用鏤空處理蒙層的示意圖;
[0040]圖4b所示為經(jīng)過鏤空處理的驗(yàn)證碼背景圖片的一種示意圖;
[0041]圖4c為經(jīng)過與圖4b相同鏤空處理的真實(shí)驗(yàn)證碼的一種示意圖;
[0042]圖5a為本發(fā)明所述合并圖片置于底色為白色的背景之上的一種示意圖;
[0043]圖5b為本發(fā)明所述合并圖片置于底色為灰色的背景之上的一種示意圖;
[0044]圖6a為一種驗(yàn)證碼輸入頁面的示意圖;
[0045]圖6b為驗(yàn)證碼輸入頁面中將合并圖片拖拽到可視區(qū)域的一種示意圖;
[0046]圖6c為驗(yàn)證碼輸入頁面中將合并圖片完全拖拽到可視區(qū)域的一種示意圖;
[0047]圖7為本發(fā)明所述驗(yàn)證碼處理裝置的一種組成示意圖。
【具體實(shí)施方式】
[0048]下面結(jié)合附圖及具體實(shí)施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。
[0049]圖1為本發(fā)明所述驗(yàn)證碼處理方法的一種流程圖,參見圖1,本發(fā)明所述驗(yàn)證碼處理方法主要包括:
[0050]步驟101、隨機(jī)生成兩組驗(yàn)證碼,一組作為真實(shí)驗(yàn)證碼,另一組作為干擾驗(yàn)證碼。
[0051]所述驗(yàn)證碼通常是一串字符串。在一種實(shí)施例中,所述隨機(jī)生成兩組驗(yàn)證碼可以是任意隨機(jī)生成的兩組驗(yàn)證碼。
[0052]為了進(jìn)一步增加驗(yàn)證碼的難度,在進(jìn)一步的優(yōu)選實(shí)施例中,所述隨機(jī)生成兩組驗(yàn)證碼,可以具體包括以下步驟111至113:
[0053]步驟111、利用預(yù)定密鑰(key)生成密文。所述的密鑰可以預(yù)先設(shè)定好。
[0054]更為具體的,本步驟111可以獲取當(dāng)前用戶(即當(dāng)前需要進(jìn)行驗(yàn)證碼驗(yàn)證的用戶)的IP地址和瀏覽器類型,將所述IP地址、瀏覽器類型和所述預(yù)定密鑰組合成字符串,再經(jīng)加密算法,例如消息摘要算法第五版(MD5, Message-Digest Algorithm 5)算法,進(jìn)行不可逆加密,生成一串密文,例如類似于后續(xù)的這樣一段密文:d725ec04c205e27363daa4fdalfld5bl ο
[0055]步驟112、根據(jù)當(dāng)前用戶的訪問特征信息確定該當(dāng)前用戶對應(yīng)的難度等級。所述難度等級也可以預(yù)先設(shè)定好,例如在一種具體實(shí)施例中可以定義三個不同難度等級,每一種難度等級都對應(yīng)一個標(biāo)記,用來表示其等級難度。
[0056]用戶請求互聯(lián)網(wǎng)應(yīng)用資源時都會將用戶歷史訪問信息,例如用戶訪問的時間、IP、瀏覽器類型等信息,存儲在服務(wù)提供方的數(shù)據(jù)庫中,本發(fā)明可以從服務(wù)提供方的數(shù)據(jù)庫中提取當(dāng)前用戶的歷史訪問信息,每當(dāng)用戶請求時都會與該用戶的歷史訪問信息去比對,進(jìn)行難度等級判斷。本發(fā)明可以預(yù)先對難度等級的劃分范圍進(jìn)行設(shè)定并存儲下來,例如IP地址范圍可以劃分不同的等級,被納入最聞黑名單的IP地址范圍會對應(yīng)最聞的難度等級,例如此處為難度等級3,次一級黑名單的IP地址范圍會對應(yīng)難度等級2,其它IP地址范圍則對應(yīng)難度最低的等級,即難度等級I。再例如可以根據(jù)歷史訪問信息對瀏覽器的類型做出分析和劃分,對于某些惡意機(jī)器人程序經(jīng)常使用的瀏覽器類型或非常規(guī)的瀏覽器類型則對應(yīng)的難度等級較高。再例如可以對用戶同一 IP地址訪問網(wǎng)絡(luò)應(yīng)用的頻率進(jìn)行統(tǒng)計(jì)分析,如果同一 IP地址高速頻繁(即訪問間隔特別小,例如間隔小于I秒)地訪問同一網(wǎng)絡(luò)應(yīng)用,則認(rèn)定其為惡意訪問,對應(yīng)的難度等級較高,可以設(shè)定同一 IP地址的不同訪問間隔范圍對應(yīng)的難度等級。
[0057]例如本步驟112可以具體包括:
[0058]獲取當(dāng)前用戶的IP地址和或?yàn)g覽器類型;
[0059]根據(jù)預(yù)定的不同難度等級對應(yīng)的IP地址范圍、瀏覽器類型、和或相同IP地址的請求間隔,判斷當(dāng)前用戶的IP地址和或?yàn)g覽器類型所對應(yīng)的難度等級;
[0060]將該難度等級確定為該當(dāng)前用戶對應(yīng)的難度等級。
[0061]例如具體可以是:判定當(dāng)前用戶的IP地址所處的IP地址范圍對應(yīng)的難度等級;判定當(dāng)前用戶的瀏覽器類型對應(yīng)的難度等級;以及判斷當(dāng)前用戶IP地址上一次訪問與本次訪問的時間間隔,根據(jù)時間間隔確定對應(yīng)的難度等級;最后將這三個難度等級中的最高級確定為該當(dāng)前用戶對應(yīng)的難度等級。
[0062]步驟113、根據(jù)所確定的難度等級,從所述密文中隨機(jī)獲取兩組字符串作為驗(yàn)證碼,其中難度等級越高,驗(yàn)證碼的字符串越復(fù)雜。
[0063]例如,定好難度等級后就可以按照預(yù)定的設(shè)置來確定對應(yīng)的驗(yàn)證碼,如下為一種3個難度等級具體的例子:
[0064]難度等級1,則在前述的密文中隨機(jī)獲取2組4位純數(shù)子作為兩組驗(yàn)證碼;
[0065]難度等級2,則在前述的密文中隨機(jī)獲取2組5位純字母作為兩組驗(yàn)證碼;
[0066]難度等級3,則在前述的密文中隨機(jī)獲取2組6位數(shù)字字母混合的字符串作為兩組驗(yàn)證碼。
[0067]所述兩組驗(yàn)證碼中,可以隨機(jī)將其中的一組作為真實(shí)驗(yàn)證碼,另一組作為干擾驗(yàn)證碼,用于起到混淆的作用,加大機(jī)器人程序識別的難度。
[0068]步驟102、生成驗(yàn)證碼圖片,其中包括真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景。
[0069]本步驟102中,所述生成驗(yàn)證碼圖片,具體包括:為所述每一組驗(yàn)證碼對應(yīng)生成一張驗(yàn)證碼圖片,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景。
[0070]更為具體的,可以分別把真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼在字體庫中隨機(jī)使用字體利用顏色文字色(例如此處為白色)逐個橫排擺放,每個字符的上下左右位置還可以經(jīng)行10-20像素之間的隨機(jī)浮動,讓機(jī)器難以捕捉真實(shí)的字符位置,產(chǎn)生兩張透明背景的驗(yàn)證碼圖片。所述驗(yàn)證碼的顏色需要與后續(xù)驗(yàn)證頁面的背景色一致。
[0071]如圖2為本發(fā)明所生成的驗(yàn)證碼圖片的一種示意圖。其中“STNTSN001”為干擾證碼碼,“STNTSN002”為真實(shí)驗(yàn)證碼,驗(yàn)證碼的顏色為白色,驗(yàn)證碼圖片中出驗(yàn)證碼外的背景為透明背景,本圖中為了能夠使讀者看到白色的驗(yàn)證碼,特用灰色背景來表示透明背景,實(shí)際上是透明背景。
[0072]當(dāng)然,為了進(jìn)一步增加機(jī)器人程序自動識別驗(yàn)證碼的難度,本發(fā)明的一種進(jìn)一步的優(yōu)選實(shí)施例中,還可以在所述生成驗(yàn)證碼圖片之后,對所述驗(yàn)證碼圖片進(jìn)行鏤空處理之前,進(jìn)一步包括:對所述驗(yàn)證碼圖片中的驗(yàn)證碼進(jìn)行扭曲效果處理。
[0073]所述對所述驗(yàn)證碼圖片中的驗(yàn)證碼進(jìn)行扭曲效果處理,具體包括:
[0074]創(chuàng)建一個與驗(yàn)證碼圖片的尺寸相同的新畫布,把原驗(yàn)證碼圖片按逐個像素的方式把每個像素都復(fù)制到該畫布上,在該新畫布上的像素點(diǎn)位置通過正玄函數(shù)f(X)=sin(a*2 π *y/height)對像素點(diǎn)的y軸坐標(biāo)進(jìn)行處理,公式中f (x)為新畫布上的像素點(diǎn)的y軸坐標(biāo),y為原驗(yàn)證碼圖片的相同像素點(diǎn)的y軸坐標(biāo),height為原驗(yàn)證碼圖片的高度。通過此公式得出新的圖片上像素點(diǎn)y周的坐標(biāo),X軸坐標(biāo)與原圖保持一致,最終可以得到一個正弦曲線一樣的波浪形扭曲的驗(yàn)證碼,通過調(diào)整參數(shù)a的數(shù)值,可以對扭曲的程度進(jìn)行改變,可根據(jù)實(shí)際情況調(diào)整到一個合適的值。在一種優(yōu)選實(shí)施例中,可以分別對真實(shí)的字符碼和無效的字符碼均進(jìn)行扭曲處理。
[0075]通過上述處理,就可以得到具有透明背景的驗(yàn)證碼圖片,圖片中包括了真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼,下面以如圖2所示的驗(yàn)證碼圖片為例,介紹接下來需要對驗(yàn)證碼圖片的進(jìn)一步處理。
[0076]步驟103、獲取驗(yàn)證碼背景圖片,對所述真實(shí)驗(yàn)證碼和驗(yàn)證碼背景圖片進(jìn)行相同的鏤空處理,將所述驗(yàn)證碼圖片置于所述驗(yàn)證碼背景圖片之上進(jìn)行合并得到合并圖片,其中所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合。
[0077]本步驟中,需要獲取一張展示在驗(yàn)證碼圖片之下一層的驗(yàn)證碼背景圖片。如圖3所示為一張驗(yàn)證碼背景圖片的示意圖。
[0078]所述對所述真實(shí)驗(yàn)證碼和驗(yàn)證碼背景圖片進(jìn)行相同的鏤空處理,所述鏤空處理在計(jì)算機(jī)圖像處理技術(shù)中可以用蒙層方式進(jìn)行處理。所述鏤空處理即是對圖片按照規(guī)定的規(guī)格進(jìn)行挖孔,得到具有多個孔眼的鏤空圖片,所述每個孔眼都是透明的,可以直接看到下一圖層或者背景。
[0079]例如,圖4a為本發(fā)明一種實(shí)施例中所采用鏤空處理蒙層的示意圖。該蒙層為黑白相間的方格圖片,其中白色部分其實(shí)是透明的,將該蒙層圖片置于所述驗(yàn)證碼背景圖片之上,在黑色方格部分要進(jìn)行挖空處理,即驗(yàn)證碼背景圖片上與所有黑色方格重合的部分都被挖出了一個孔,利用這種處理方式,可以將驗(yàn)證碼背景圖片鏤空處理成具有整齊孔眼的鏤空圖片,如圖4b所示為經(jīng)過鏤空處理的驗(yàn)證碼背景圖片的一種示意圖,其中下方是其右下角的局部放大圖。
[0080]接著需要對所述真實(shí)驗(yàn)證碼進(jìn)行同樣的鏤空處理,如圖4c為經(jīng)過與圖4b相同鏤空處理的真實(shí)驗(yàn)證碼的一種示意圖,所述相同的鏤空處理是指所用的蒙層需要一樣,即最終所述真實(shí)驗(yàn)證碼被處理成具有整齊孔眼的鏤空圖片,且孔眼的大小和相對位置與圖4a所述驗(yàn)證碼背景圖片上的孔眼大小和相對位置都一致;所述孔眼部分都為透明,可以看到下一層,本圖中也用灰色表示透明背景。
[0081]然而,所述干擾驗(yàn)證碼不必進(jìn)行所述鏤空處理。
[0082]之后,需要將所述驗(yàn)證碼圖片(包括真實(shí)驗(yàn)證碼圖片和干擾驗(yàn)證碼圖片)置于所述驗(yàn)證碼背景圖片之上進(jìn)行合并得到合并圖片,此處需要注意,其中所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合,即所述真實(shí)驗(yàn)證碼上的孔眼要與驗(yàn)證碼背景圖片上的孔眼位置重合。至于所述真實(shí)驗(yàn)證碼和無效驗(yàn)證碼的相對上下位置可以隨機(jī)。
[0083]參見圖5a為本發(fā)明所述合并圖片置于底色為白色的背景之上的一種示意圖。由于在本文實(shí)施例中,真實(shí)驗(yàn)證碼的顏色為白色,而所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合,因此從其鏤空部分的孔眼可以直接看到背景的底色,然而背景底色也是白色,那么白色和白色混在一起就看不出所述經(jīng)過鏤空處理的真實(shí)驗(yàn)證碼,只能看到?jīng)]有經(jīng)過鏤空處理的、置于所述驗(yàn)證碼背景圖片上層的干擾驗(yàn)證碼“STNTSN001”。
[0084]圖5b為本發(fā)明所述合并圖片置于底色為灰色的背景之上的一種示意圖。其上半部分為合并圖片的整體示意圖,下半部分為真實(shí)驗(yàn)證碼中的字符“002”的局部放大圖。由于在本文實(shí)施例中,真實(shí)驗(yàn)證碼的顏色為白色,而所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合,因此從其鏤空部分的孔眼可以直接看到背景的底色,然而背景底色是與真實(shí)驗(yàn)證碼的顏色不一致的灰色,那么白色和灰色就會區(qū)分開來,因此可以看出所述經(jīng)過鏤空處理的真實(shí)驗(yàn)證碼“STNTSN002”,當(dāng)然沒有經(jīng)過鏤空處理的干擾驗(yàn)證碼“STNTSN001”是設(shè)置在驗(yàn)證碼背景圖片上層的,因此也可以被看到。
[0085]因此只要控制所述合并圖片下一層的背景底色,就可以控制所述真實(shí)驗(yàn)證碼的顯示和隱蔽,只要背景底色與真實(shí)驗(yàn)證碼顏色一致,則可以隱蔽真實(shí)驗(yàn)證碼,只要背景底色與真實(shí)驗(yàn)證碼顏色不一致,則可以顯示出所述真實(shí)驗(yàn)證碼。本發(fā)明就是通過這種處理在如下的步驟中增加驗(yàn)證碼識別的難度。
[0086]步驟104、將所述合并圖片顯示在頁面背景上,且頁面背景顏色與所述真實(shí)驗(yàn)證碼的顏色一致。這樣就可以使真實(shí)驗(yàn)證碼的顏色與所述頁面背景的顏色對應(yīng)一致,在所述真實(shí)驗(yàn)證碼即使放置在頁面背景上時,使人眼識別不出該真實(shí)驗(yàn)證碼,從而隱藏真實(shí)驗(yàn)證碼。還需要在頁面背景上顯示可視區(qū)域,該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致。
[0087]如圖6a為一種驗(yàn)證碼輸入頁面的示意圖;該輸入頁面的背景顏色與所述真實(shí)驗(yàn)證碼的顏色一致,例如此處為白色,這樣所述合并圖片601置于該白色頁面背景之上后,由于真實(shí)驗(yàn)證碼的顏色為白色,而所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合,因此從其鏤空部分的孔眼可以直接看到頁面背景,然而頁面背景也是白色,那么白色和白色混在一起就看不出所述經(jīng)過鏤空處理的真實(shí)驗(yàn)證碼,只能看到?jīng)]有經(jīng)過鏤空處理的、置于所述驗(yàn)證碼背景圖片上層的干擾驗(yàn)證碼“STNTSN001”。同時,還要在驗(yàn)證碼輸入頁面上顯示一個可視區(qū)域如602,該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致,例如此處為灰色。
[0088]步驟105、監(jiān)測對所述合并圖片的移動指令,根據(jù)移動指令將所述合并圖片移動到所述可視區(qū)域之上。
[0089]在一種優(yōu)選實(shí)施例中,所述移動指令為對合并圖片的拖拽指令。用戶可以對所述合并圖片601施加拖拽指令,將合并圖片601拖拽到所述可視區(qū)域602之上。如圖6b為驗(yàn)證碼輸入頁面中將合并圖片拖拽到可視區(qū)域的一種示意圖,圖6c為驗(yàn)證碼輸入頁面中將合并圖片完全拖拽到可視區(qū)域的一種示意圖。參見圖6b和圖6c,當(dāng)真實(shí)驗(yàn)證碼被拖拽到可視區(qū)域602之上時,由于真實(shí)驗(yàn)證碼的顏色為白色,而所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合,因此從其鏤空部分的孔眼可以直接看到下一層的顏色,然而下一層的可視區(qū)域602背景底色是與真實(shí)驗(yàn)證碼的顏色不一致的灰色,那么白色和灰色就會區(qū)分開來,因此可以看出所述經(jīng)過鏤空處理的真實(shí)驗(yàn)證碼“STNTSN002”,當(dāng)然沒有經(jīng)過鏤空處理的干擾驗(yàn)證碼“STNTSN001”是設(shè)置在驗(yàn)證碼背景圖片上層的,因此也可以被看到。
[0090]之后,用戶就可以在輸入框603輸入看到的真實(shí)驗(yàn)證碼,本發(fā)明監(jiān)測在輸入框輸入的字符串,判斷該字符串是否與所述真實(shí)驗(yàn)證碼一致,若一致則驗(yàn)證通過,否則驗(yàn)證失敗。
[0091]通過上述處理,由于本發(fā)明需要通過移動指令,并將合并圖片移動到可視區(qū)域之上才可以顯示出真實(shí)驗(yàn)證碼,而該移動指令的發(fā)出和移動到可視區(qū)域之上的操作,對于機(jī)器人程序來說是非常難做到的,因此本發(fā)明可以提高機(jī)器人程序識別驗(yàn)證碼的難度,提高驗(yàn)證碼的安全性。
[0092]與上述驗(yàn)證碼處理方法對應(yīng),本發(fā)明還公開了一種驗(yàn)證碼處理裝置,用于執(zhí)行上述驗(yàn)證碼處理方法。圖7為本發(fā)明所述驗(yàn)證碼處理裝置的一種組成示意圖。參見圖7,該裝置包括:
[0093]驗(yàn)證碼生成模塊701,用于隨機(jī)生成兩組驗(yàn)證碼,一組作為真實(shí)驗(yàn)證碼,另一組作為干擾驗(yàn)證碼;
[0094]驗(yàn)證碼圖片生成模塊702,用于生成驗(yàn)證碼圖片,其中包括真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景;
[0095]合并圖片生成模塊703,用于獲取驗(yàn)證碼背景圖片,對所述真實(shí)驗(yàn)證碼和驗(yàn)證碼背景圖片進(jìn)行相同的鏤空處理,將所述驗(yàn)證碼圖片置于所述驗(yàn)證碼背景圖片之上進(jìn)行合并得到合并圖片,其中所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合;
[0096]驗(yàn)證頁面生成模塊704,用于將所述合并圖片顯示在頁面背景上,且頁面背景顏色與所述真實(shí)驗(yàn)證碼的顏色一致;在頁面背景上顯示可視區(qū)域,該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致;
[0097]移動模塊705,用于監(jiān)測對所述合并圖片的移動指令,例如拖拽指令,根據(jù)移動指令將所述合并圖片移動到所述可視區(qū)域之上。
[0098]進(jìn)一步的,該裝置還包括驗(yàn)證模塊,用于監(jiān)測在輸入框輸入的字符串,判斷該字符串是否與所述真實(shí)驗(yàn)證碼一致,若一致則驗(yàn)證通過,否則驗(yàn)證失敗。
[0099]另外,在本發(fā)明各個實(shí)施例中的各功能模塊可以集成在一個處理單元中,也可以是各個模塊單獨(dú)物理存在,也可以兩個或兩個以上模塊集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。所述各實(shí)施例的功能模塊可以位于一個終端或網(wǎng)絡(luò)節(jié)點(diǎn),或者也可以分布到多個終端或網(wǎng)絡(luò)節(jié)點(diǎn)上。
[0100]另外,本發(fā)明的每一個實(shí)施例可以通過由數(shù)據(jù)處理設(shè)備如計(jì)算機(jī)執(zhí)行的數(shù)據(jù)處理程序來實(shí)現(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ì)(如MO等)等。
[0101]因此本發(fā)明還公開了一種存儲介質(zhì),其中存儲有數(shù)據(jù)處理程序,該數(shù)據(jù)處理程序用于執(zhí)行本發(fā)明上述方法的任何一種實(shí)施例。
[0102]另外,本發(fā)明所述的方法步驟除了可以用數(shù)據(jù)處理程序來實(shí)現(xiàn),還可以由硬件來實(shí)現(xiàn),例如,可以由邏輯門、開關(guān)、專用集成電路(ASIC)、可編程邏輯控制器和嵌入微控制器等來實(shí)現(xiàn)。因此這種可以實(shí)現(xiàn)本發(fā)明所述方法的硬件也可以構(gòu)成本發(fā)明。
[0103]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種驗(yàn)證碼處理方法,其特征在于,包括: 隨機(jī)生成兩組驗(yàn)證碼,一組作為真實(shí)驗(yàn)證碼,另一組作為干擾驗(yàn)證碼; 生成驗(yàn)證碼圖片,其中包括真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景; 獲取驗(yàn)證碼背景圖片,對所述真實(shí)驗(yàn)證碼和驗(yàn)證碼背景圖片進(jìn)行相同的鏤空處理,將所述驗(yàn)證碼圖片置于所述驗(yàn)證碼背景圖片之上進(jìn)行合并得到合并圖片,其中所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合; 將所述合并圖片顯示在頁面背景上,且頁面背景顏色與所述真實(shí)驗(yàn)證碼的顏色一致;在頁面背景上顯示可視區(qū)域,該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致; 監(jiān)測對所述合并圖片的移動指令,根據(jù)移動指令將所述合并圖片移動到所述可視區(qū)域之上。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述移動指令為對合并圖片的拖拽指令。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述生成驗(yàn)證碼圖片,具體包括:為所述每一組驗(yàn)證碼對應(yīng)生成一張驗(yàn)證碼圖片,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背旦-5^ O
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述隨機(jī)生成兩組驗(yàn)證碼,具體包括: 利用預(yù)定密鑰生成密文; 根據(jù)當(dāng)前用戶的訪問特征信息確定該當(dāng)前用戶對應(yīng)的難度等級; 根據(jù)所確定的難度等級,從所述密文中隨機(jī)獲取兩組字符串作為驗(yàn)證碼,其中難度等級越高,驗(yàn)證碼的字符串越復(fù)雜。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述利用密鑰生成密文,具體包括:獲取當(dāng)前用戶的IP地址和瀏覽器類型,將所述IP地址、瀏覽器類型和所述預(yù)定密鑰組合成字符串,再經(jīng)加密算法進(jìn)行不可逆加密,生成一串密文。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)當(dāng)前用戶的訪問特征信息確定該當(dāng)前用戶對應(yīng)的難度等級,具體包括: 獲取當(dāng)前用戶的IP地址和或?yàn)g覽器類型; 根據(jù)預(yù)定的不同難度等級對應(yīng)的IP地址范圍、瀏覽器類型、和或相同IP地址的請求間隔,判斷當(dāng)前用戶的IP地址和或?yàn)g覽器類型所對應(yīng)的難度等級; 將該難度等級確定為該當(dāng)前用戶對應(yīng)的難度等級。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述生成驗(yàn)證碼圖片之后,對所述驗(yàn)證碼圖片進(jìn)行鏤空處理之前,進(jìn)一步包括:對所述驗(yàn)證碼圖片中的驗(yàn)證碼進(jìn)行扭曲效果處理。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述對所述驗(yàn)證碼圖片中的驗(yàn)證碼進(jìn)行扭曲效果處理,具體包括: 創(chuàng)建一個與驗(yàn)證碼圖片的尺寸相同的新畫布,把原驗(yàn)證碼圖片按逐個像素的方式把每個像素都復(fù)制到該畫布上,在該新畫布上的像素點(diǎn)位置通過正玄函數(shù)f(x)=sin(a*2 *y/height)對像素點(diǎn)的y軸坐標(biāo)進(jìn)行處理,公式中f (x)為新畫布上的像素點(diǎn)的y軸坐標(biāo),y為原驗(yàn)證碼圖片的相同像素點(diǎn)的y軸坐標(biāo),height為原驗(yàn)證碼圖片的高度。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括:監(jiān)測在輸入框輸入的字符串,判斷該字符串是否與所述真實(shí)驗(yàn)證碼一致,若一致則驗(yàn)證通過,否則驗(yàn)證失敗。
10.一種驗(yàn)證碼處理裝置,其特征在于,包括: 驗(yàn)證碼生成模塊,用于隨機(jī)生成兩組驗(yàn)證碼,一組作為真實(shí)驗(yàn)證碼,另一組作為干擾驗(yàn)證碼; 驗(yàn)證碼圖片生成模塊,用于生成驗(yàn)證碼圖片,其中包括真實(shí)驗(yàn)證碼和干擾驗(yàn)證碼,所述驗(yàn)證碼圖片中除驗(yàn)證碼外的背景為透明背景; 合并圖片生成模塊,用于獲取驗(yàn)證碼背景圖片,對所述真實(shí)驗(yàn)證碼和驗(yàn)證碼背景圖片進(jìn)行相同的鏤空處理,將所述驗(yàn)證碼圖片置于所述驗(yàn)證碼背景圖片之上進(jìn)行合并得到合并圖片,其中所述真實(shí)驗(yàn)證碼的鏤空位置與所述驗(yàn)證碼背景圖片的鏤空位置重合; 驗(yàn)證頁面生成模塊,用于將所述合并圖片顯示在頁面背景上,且頁面背景顏色與所述真實(shí)驗(yàn)證碼的顏色一致;在頁面背景上顯示可視區(qū)域,該可視區(qū)域的顏色與真實(shí)驗(yàn)證碼的顏色不一致; 移動模塊,用于監(jiān)測對所述合并圖片的移動指令,根據(jù)移動指令將所述合并圖片移動到所述可視區(qū)域之上。
【文檔編號】G06F21/36GK104200150SQ201410441617
【公開日】2014年12月10日 申請日期:2014年9月1日 優(yōu)先權(quán)日:2014年9月1日
【發(fā)明者】朱琦 申請人:湖北盛天網(wǎng)絡(luò)技術(shù)股份有限公司