本發(fā)明涉及網(wǎng)站開發(fā)技術(shù)領(lǐng)域,具體涉及一種識(shí)別驗(yàn)證碼作弊程序的方法。
背景技術(shù):
目前驗(yàn)證碼作為識(shí)別真實(shí)用戶和程序作弊破解的一種手段,正被大量使用。但有的驗(yàn)證碼為了防止被程序識(shí)別破解,使字符嚴(yán)重變形,互相重疊,以至于真實(shí)用戶都難以識(shí)別。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問題在于提供一種識(shí)別驗(yàn)證碼作弊程序的方法,解決了驗(yàn)證碼難以被真實(shí)用戶識(shí)別,容易被程序作弊破解,能夠識(shí)別作弊程序的問題。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
所述的方法是先生成帶有深淺兩組顏色字符的驗(yàn)證碼,并通過css和Javascript使用濾鏡翻轉(zhuǎn)驗(yàn)證碼字符顏色,進(jìn)而欺騙驗(yàn)證碼作弊程序,識(shí)別出驗(yàn)證碼作弊程序。
所述的方法具體包含以下幾個(gè)步驟:
步驟一、生成兩組各不相同的,包含隨機(jī)數(shù)字和字母的字符,定義為字符串A和字符串B;
步驟二、創(chuàng)建一個(gè)背景色為白色的圖片,在圖片上寫入字符串A和字符串B,字符串A使用很明顯的深顏色,字符串B使用暗淡的顏色;
步驟三、將字符串A和字符串B保存在服務(wù)器;
步驟四、將圖片輸出,顯示在頁面中,作為驗(yàn)證碼使用;
步驟五、通過css和Javascript,在驗(yàn)證碼上面加一個(gè)濾鏡層,使驗(yàn)證碼的字符顏色反轉(zhuǎn),使深顏色變成淡顏色,淡顏色變成深顏色;
步驟六、判斷用戶輸入的驗(yàn)證碼,如果等于字符串A,則判斷為作弊破解程序。
本發(fā)明的有益效果:欺騙驗(yàn)證碼作弊破解程序而不影響真實(shí)用戶,并且能判斷哪些信息是驗(yàn)證碼作弊破解程序輸入的,從而達(dá)到驗(yàn)證碼防作弊,識(shí)別作弊程序的目的。
附圖說明
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明:
圖1為本發(fā)明的方法流程圖。
圖2為生成的驗(yàn)證碼圖片。
圖3為加濾鏡后的驗(yàn)證碼圖片。
具體實(shí)施方式
如圖1所示,本發(fā)明采用如下步驟:
步驟一、生成兩組各不相同的,包含隨機(jī)數(shù)字和字母的字符,每組字符串長度大于等于4,定義為字符串A和字符串B;
步步驟二、創(chuàng)建一個(gè)背景色為白色的圖片,在圖片上寫入步驟一得到的字符串A和字符串B,字符串A使用很明顯的深顏色,如深紅色、深棕色,字符串B使用在白色背景色下肉眼不容易察覺的暗淡顏色,如淡灰色、淡黃色;
步驟三、將步驟一得到的字符串A和字符串B保存在服務(wù)器,跟當(dāng)前用戶對(duì)應(yīng)起來,如存放在session中;
步驟四、將圖片作適當(dāng)?shù)呐で?、加斑點(diǎn)等操作,然后作為圖片輸出,顯示在頁面中,作為驗(yàn)證碼使用;此時(shí)的驗(yàn)證碼如圖2所示。
步驟五、通過css和Javascript,獲取驗(yàn)證碼圖片的坐標(biāo)和大小,根據(jù)坐標(biāo)和大小,在驗(yàn)證碼上面加一個(gè)大小跟驗(yàn)證碼大小相同的濾鏡層,剛好完全覆蓋驗(yàn)證碼圖片。該濾鏡層使驗(yàn)證碼的字符顏色反轉(zhuǎn),使深顏色變成淡顏色,淡顏色變成深顏色。加過濾鏡后的驗(yàn)證碼如圖3所示。通過該操作,呈現(xiàn)在真實(shí)用戶眼前的是顏色非常明顯的B字符串,A字符串此時(shí)顏色非常暗淡,不易察覺。而作弊程序因?yàn)橹恢苯幼x取驗(yàn)證碼,沒有濾鏡層效果,所以識(shí)別出來的是原本深顏色的字符串A,字符串B因?yàn)轭伾档贿^濾掉了;
步驟六、判斷用戶輸入的驗(yàn)證碼,如果等于字符串B,則為真實(shí)用戶的正確輸入。如果等于字符串A,則可以判斷為作弊破解程序,可以對(duì)該IP地址或用戶進(jìn)行封禁處理。如果不等于字符串A且不等于字符串B,則判斷為輸入錯(cuò)誤,重新生成新的驗(yàn)證碼圖片顯示。