圖片驗(yàn)證碼生成方法和系統(tǒng)、驗(yàn)證方法和客戶端及服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像處理技術(shù),特別是涉及一種圖片驗(yàn)證碼生成方法和系統(tǒng)。
【背景技術(shù)】
[0002]驗(yàn)證碼技術(shù)是一種全自動區(qū)分計(jì)算機(jī)和人類的圖靈測試(Completely AutomatedPublic Turing test to tell Computers and Humans Apart, CAPTCHA),是一種區(qū)分用戶是計(jì)算機(jī)還是人的公共全自動程序。驗(yàn)證碼技術(shù)就是將一串隨機(jī)產(chǎn)生的數(shù)字或符號生成一幅圖片,圖片中加入一些干擾元素,該圖片即稱為圖片驗(yàn)證碼,并由用戶肉眼識別圖片驗(yàn)證碼中的字符,將字符提交至網(wǎng)站,由網(wǎng)站進(jìn)行驗(yàn)證,驗(yàn)證成功后用戶才能使用某項(xiàng)功能。
[0003]為了防止計(jì)算機(jī)批量注冊、惡意破解、論壇灌水等,一般的網(wǎng)站都采用驗(yàn)證碼技術(shù)。而自動機(jī)是專門用于破解圖片驗(yàn)證碼的一種計(jì)算機(jī)程序,其通過使用各種圖像識別技術(shù),自動從圖片驗(yàn)證碼中識別出對應(yīng)的字符并輸出結(jié)果,以實(shí)現(xiàn)對圖片驗(yàn)證碼的自動破解。
[0004]自動機(jī)破解圖片驗(yàn)證碼的一般流程為:分割圖片驗(yàn)證碼中的背景與字符,從粘連的字符串中切分出單個(gè)字符,并逐一識別單個(gè)字符。隨著OCR (Optical CharacterRecognit1n,光學(xué)字符識別)技術(shù)的發(fā)展,圖片驗(yàn)證碼越來越無法抵御自動機(jī)的破解。為了增加自動機(jī)破解難度,需要在圖片驗(yàn)證碼中增加更多更復(fù)雜的干擾元素,然而這些干擾元素又會使正常用戶對圖片驗(yàn)證碼的辨識率也大幅下降。
【發(fā)明內(nèi)容】
[0005]基于此,有必要提供一種圖片驗(yàn)證碼生成方法和系統(tǒng),使得所生成的圖片驗(yàn)證碼能增加自動機(jī)的破解難度并且不會增加用戶識別難度。
[0006]一種圖片驗(yàn)證碼生成方法,包括以下步驟:
[0007]獲取背景圖片;
[0008]獲取iu景字符;
[0009]將所述前景字符嵌入所述圖片前景中,得到圖片驗(yàn)證碼;
[0010]在所述圖片驗(yàn)證碼中生成分割所述前景字符且與所述背景圖片顏色相融的干擾元素。
[0011]一種圖片驗(yàn)證碼生成系統(tǒng),包括:
[0012]前景獲取模塊,用于獲取背景圖片;
[0013]字符獲取模塊,用于獲取前景字符;
[0014]合成模塊,用于將所述前景字符嵌入所述背景圖片中,得到圖片驗(yàn)證碼;
[0015]干擾元素生成模塊,用于在所述圖片驗(yàn)證碼中生成分割所述前景字符且與所述背景圖片顏色相融的干擾元素。
[0016]此外,還有必要提供一種可增加自動機(jī)破解圖片驗(yàn)證碼的難度且不會增加用戶識別圖片驗(yàn)證碼的難度的基于圖片驗(yàn)證碼的驗(yàn)證方法和客戶端以及服務(wù)器。
[0017]一種基于圖片驗(yàn)證碼的驗(yàn)證方法,包括以下步驟:
[0018]接收并展示服務(wù)器發(fā)送的圖片驗(yàn)證碼,所述圖片驗(yàn)證碼中包含干擾元素,所述干擾元素分割所述圖片驗(yàn)證碼中的前景字符且與所述圖片驗(yàn)證碼中的背景圖片顏色相融;
[0019]獲取通過與所述圖片驗(yàn)證碼對應(yīng)的驗(yàn)證碼輸入接口輸入的字符;
[0020]將輸入的字符發(fā)送至所述服務(wù)器,使得所述服務(wù)器根據(jù)輸入的字符與所述圖片驗(yàn)證碼獲得匹配結(jié)果;
[0021]接收并展示所述服務(wù)器返回的與所述匹配結(jié)果對應(yīng)的網(wǎng)頁內(nèi)容。
[0022]一種基于圖片驗(yàn)證碼的驗(yàn)證方法,包括以下步驟:
[0023]生成圖片驗(yàn)證碼,所述圖片驗(yàn)證碼按照上述的圖片驗(yàn)證碼生成方法生成;
[0024]保存圖片驗(yàn)證碼與圖片驗(yàn)證碼所表達(dá)的字符的對應(yīng)關(guān)系;
[0025]將所述圖片驗(yàn)證碼下發(fā)給客戶端,使得所述客戶端展示所述圖片驗(yàn)證碼;
[0026]接收所述客戶端提交的通過與所述圖片驗(yàn)證碼對應(yīng)的驗(yàn)證碼輸入接口輸入的字符;
[0027]將所述輸入的字符與所述圖片驗(yàn)證碼所表達(dá)的字符相匹配,得到匹配結(jié)果;
[0028]根據(jù)所述匹配結(jié)果向所述客戶端下發(fā)對應(yīng)的網(wǎng)頁內(nèi)容。
[0029]一種基于圖片驗(yàn)證碼的驗(yàn)證客戶端,包括:
[0030]驗(yàn)證碼接收模塊,用于接收服務(wù)器發(fā)送的圖片驗(yàn)證碼,所述圖片驗(yàn)證碼中包含干擾元素,所述干擾元素分割所述圖片驗(yàn)證碼中的前景字符且與所述圖片驗(yàn)證碼中的背景圖片顏色相融;
[0031]驗(yàn)證碼展示模塊,用于展示所述圖片驗(yàn)證碼;
[0032]字符獲取模塊,用于獲取通過與所述圖片驗(yàn)證碼對應(yīng)的驗(yàn)證碼輸入接口輸入的字符;
[0033]字符發(fā)送模塊,用于將輸入的字符發(fā)送至所述服務(wù)器,使得所述服務(wù)器根據(jù)輸入的字符與所述圖片驗(yàn)證碼獲得匹配結(jié)果;
[0034]網(wǎng)頁接收模塊,用于接收所述服務(wù)器返回的與所述匹配結(jié)果對應(yīng)的網(wǎng)頁內(nèi)容;
[0035]網(wǎng)頁展示模塊,用于展示所述網(wǎng)頁內(nèi)容。
[0036]一種基于圖片驗(yàn)證碼的驗(yàn)證服務(wù)器,包括:
[0037]上述的圖片驗(yàn)證碼生成系統(tǒng);
[0038]存儲模塊,用于保存圖片驗(yàn)證碼與圖片驗(yàn)證碼所表達(dá)的字符的對應(yīng)關(guān)系;
[0039]驗(yàn)證碼下發(fā)模塊,用于將所述圖片驗(yàn)證碼下發(fā)給客戶端,使得所述客戶端展示所述圖片驗(yàn)證碼;
[0040]字符接收模塊,用于接收所述客戶端提交的通過與所述圖片驗(yàn)證碼對應(yīng)的驗(yàn)證碼輸入接口輸入的字符;
[0041]匹配模塊,用于將所述輸入的字符與所述圖片驗(yàn)證碼所表達(dá)的字符相匹配,得到匹配結(jié)果;
[0042]網(wǎng)頁下發(fā)模塊,用于根據(jù)所述匹配結(jié)果向所述客戶端下發(fā)對應(yīng)的網(wǎng)頁內(nèi)容。
[0043]上述圖片驗(yàn)證碼生成方法和系統(tǒng)、基于圖片驗(yàn)證碼的驗(yàn)證方法和客戶端及服務(wù)器,在圖片驗(yàn)證碼中用與背景圖片顏色相融的干擾元素分割前景字符,可以認(rèn)為干擾元素也成了背景圖片的一部分,使得自動機(jī)在圖片驗(yàn)證碼中只能提取到前景字符碎片,而不能提取到整個(gè)前景字符,從而增加了自動機(jī)破解圖片驗(yàn)證碼的難度,有效地防止自動機(jī)批量注冊、惡意破解、論壇灌水等,而前景字符雖然被分割,但前景字符碎片構(gòu)成的整體輪廓還是可以使得圖片驗(yàn)證碼易于被用戶識別,因此不會增加用戶識別圖片驗(yàn)證碼的難度。
【附圖說明】
[0044]圖1為一個(gè)實(shí)施例中的圖片驗(yàn)證碼生成方法的流程示意圖;
[0045]圖2A為一個(gè)實(shí)施例中的圖片驗(yàn)證碼的示意圖;
[0046]圖2B為一個(gè)實(shí)施例中的圖片驗(yàn)證碼生成方法生成的圖片驗(yàn)證碼示意圖;
[0047]圖2C為一個(gè)實(shí)施例中的圖片驗(yàn)證碼生成方法生成的圖片驗(yàn)證碼示意圖;
[0048]圖3為一個(gè)實(shí)施例中的基于圖片驗(yàn)證碼的驗(yàn)證方法的流程示意圖;
[0049]圖4為一個(gè)實(shí)施例中的基于圖片驗(yàn)證碼的驗(yàn)證方法的流程示意圖;
[0050]圖5為一個(gè)實(shí)施例中的圖片驗(yàn)證碼生成系統(tǒng)的結(jié)構(gòu)示意圖;
[0051]圖6為一個(gè)實(shí)施例中的基于圖片驗(yàn)證碼的驗(yàn)證客戶端的結(jié)構(gòu)示意圖;
[0052]圖7為一個(gè)實(shí)施例中的基于圖片驗(yàn)證碼的驗(yàn)證服務(wù)器的結(jié)構(gòu)示意圖;
[0053]圖8為能實(shí)現(xiàn)本發(fā)明實(shí)施例的一個(gè)計(jì)算機(jī)系統(tǒng)1000的模塊圖。
【具體實(shí)施方式】
[0054]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0055]除非上下文另有特定清楚的描述,本發(fā)明中的元件和組件,數(shù)量既可以單個(gè)的形式存在,也可以多個(gè)的形式存在,本發(fā)明并不對此進(jìn)行限定。本發(fā)明中的步驟雖然用標(biāo)號進(jìn)行了排列,但并不用于限定步驟的先后次序,除非明確說明了步驟的次序或者某步驟的執(zhí)行需要其他步驟作為基礎(chǔ),否則步驟的相對次序是可以調(diào)整的??梢岳斫?,本文中所使用的術(shù)語“和/或”涉及且涵蓋相關(guān)聯(lián)的所列項(xiàng)目中的一者或一者以上的任何和所有可能的組口 ο
[0056]如圖1所示,在一個(gè)實(shí)施例中,一種圖片驗(yàn)證碼生成方法,包括以下步驟:
[0057]步驟S102,獲取背景圖片。
[0058]在一個(gè)實(shí)施例中,可預(yù)先收集背景圖片并保存至背景圖片庫中,步驟S102可從背景圖片庫中隨機(jī)抽取背景圖片。在另一個(gè)實(shí)施例中,步驟S102可隨機(jī)選取背景圖片的顏色,并根據(jù)選取的顏色生成背景圖片。
[0059]步驟S104,獲取前景字符。
[0060]在一個(gè)實(shí)施例中,可預(yù)先收集字符樣本并保存至字符樣本庫中,步驟S104可從字符樣本庫中隨機(jī)選取字符樣本作為圖片驗(yàn)證碼的前景字符。在另一個(gè)實(shí)施例中,步驟S104可隨機(jī)選取預(yù)設(shè)范圍內(nèi)的字符(例如A?Z內(nèi)的大寫英文字符)以及字符顏色和字符字體,根據(jù)選取的字符、字符顏色和字符字體生成前景字符。
[0061]進(jìn)一步的,步驟S104可將前景字符進(jìn)行扭曲變形,例如鋼性變形或非線性變形等坐寸ο
[0062]步驟S106,將前景字符嵌入背景圖片中,得到圖片驗(yàn)證碼。
[0063]在一個(gè)實(shí)施例中,可將前景字符進(jìn)行旋轉(zhuǎn)后嵌入背景圖片中,旋轉(zhuǎn)的角度可以隨機(jī)選取,并使得前景字符之間相互粘連,以提高自動機(jī)從圖片驗(yàn)證碼中提取單個(gè)字符的難度。
[0064]步驟S108,在圖片驗(yàn)證碼中生成分割前景字符且與背景圖片顏色相融的干擾元素。
[0065]對于具有單一顏色的背景圖片,干擾元素與背景圖片的顏色相融即指的是干擾元素與背景圖片顏色相同。對于具有復(fù)雜顏色的背景圖片,干擾元素與背景圖片顏色相融指的是干擾元素的顏色符合背景圖片中像素的顏色規(guī)律,即將干擾元素置于背景圖片中后干擾元素與背景圖片可融為一體。例如,圖2A所示的圖片驗(yàn)證碼20a中的背景圖片201為具有復(fù)雜顏色的自然圖片,其中的干擾元素202將前景字符203分割成多個(gè)部分