驗證碼圖片的生成方法和裝置及驗證方法和裝置制造方法
【專利摘要】本發(fā)明提出一種驗證碼圖片的生成方法和裝置及驗證方法和裝置,為降低機器自動識別成功率。該驗證碼圖片的生成方法包括生成紋理圖片;確定驗證碼的位置;在所述驗證碼的位置,對所述紋理圖片的像素值進行修改,得到驗證碼圖片。該方法能夠降低機器自動識別成功率,降低驗證碼被破解風險,提高網(wǎng)絡安全性。
【專利說明】驗證碼圖片的生成方法和裝置及驗證方法和裝置
【技術領域】
[0001]本發(fā)明涉及網(wǎng)絡安全【技術領域】,尤其涉及一種驗證碼圖片的生成方法和裝置及驗證方法和裝置。
【背景技術】
[0002]為了防止某些用戶使用機器自動進行登錄、發(fā)布信息、下載等計算機操作,很多網(wǎng)站在用戶進行相關計算機操作時,都要求用戶輸入驗證碼。驗證碼通常是以一幅圖片的形式顯示的,用戶按照圖片中顯示的字符進行輸入。
[0003]隨著技術的發(fā)展,機器通過軟件可以自動完成對驗證碼的識別,機器的自動識別主要依賴圖像上連續(xù)的驗證碼,同時需要驗證碼本身和背景有較大反差。為了降低機器識別的成功率,可以對驗證碼進行虛化、扭曲,在背景中加入噪聲等處理,但是,由于機器自動識別能力越來越強,依然存在較高的識別率。
【發(fā)明內容】
[0004]本發(fā)明旨在至少在一定程度上解決相關技術中的技術問題之一。
[0005]為此,本發(fā)明的一個目的在于提出一種驗證碼圖片的生成方法,該方法可以降低機器對驗證碼自動識別的成功率,降低驗證碼被破解的風險,進而提高網(wǎng)絡安全性。
[0006]本發(fā)明的另一個目的在于提出一種驗證碼圖片的生成裝置。
[0007]本發(fā)明的另一個目的在于提出一種驗證方法。
[0008]本發(fā)明的另一個目的在于提出一種驗證裝置。
[0009]為達到上述目的,本發(fā)明第一方面實施例提出的驗證碼圖片的生成方法,包括:生成紋理圖片;確定驗證碼的位置;在所述驗證碼的位置,對所述紋理圖片的像素值進行修改,得到驗證碼圖片。
[0010]本發(fā)明第一方面實施例提出的驗證碼圖片的生成方法,通過對紋理圖片中對應驗證碼的位置處的像素值進行修改,可以在紋理圖片中驗證碼的位置處出現(xiàn)像素值變化,人眼可以捕捉到這種變化,從而識別出驗證碼,但是,由于這些位置的像素值不連續(xù),并且與背景差別不大,機器難以識別,從而降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0011]為達到上述目的,本發(fā)明第二方面實施例提出的驗證碼的生成裝置,包括:生成模塊,用于生成紋理圖片;確定模塊,用于確定驗證碼的位置;處理模塊,用于在所述驗證碼的位置,對所述紋理圖片的像素值進行修改,得到驗證碼圖片。
[0012]本發(fā)明第二方面實施例提出的驗證碼的生成裝置,通過對紋理圖片中對應驗證碼的位置處的像素值進行修改,可以在紋理圖片中驗證碼的位置處出現(xiàn)像素值變化,人眼可以捕捉到這種變化,從而識別出驗證碼,但是,由于這些位置的像素值不連續(xù),并且與背景差別不大,機器難以識別,從而降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。[0013]為達到上述目的,本發(fā)明第三方面實施例提出的驗證方法,包括:顯示驗證碼圖片,其中,所述驗證碼圖片是在驗證碼的位置,對紋理圖片的像素值進行修改后得到的;接收用戶輸入;根據(jù)所述驗證碼圖片對所述用戶輸入進行驗證。
[0014]本發(fā)明第三方面實施例提出的驗證方法,通過在驗證時采用驗證碼圖片,且該驗證碼圖片的是紋理圖片中在驗證碼所在位置進行像素值修改后得到的,可以實現(xiàn)采用的驗證碼圖片中驗證碼的不連續(xù)性,且背景和驗證碼差別較小,因此,可以降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0015]為達到上述目的,本發(fā)明第四方面實施例提出的驗證裝置,包括:顯示模塊,用于顯示驗證碼圖片,其中,所述驗證碼圖片是在驗證碼的位置,對紋理圖片的像素值進行修改后得到的;接收模塊,用于接收用戶輸入;驗證模塊,用于根據(jù)所述驗證碼圖片對所述用戶輸入進行驗證。
[0016]本發(fā)明第四方面實施例提出的驗證裝置,通過在驗證時采用驗證碼圖片,且該驗證碼圖片的是紋理圖片中在驗證碼所在位置進行像素值修改后得到的,可以實現(xiàn)采用的驗證碼圖片中驗證碼的不連續(xù)性,且背景和驗證碼差別較小,因此,可以降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0017]為達到上述目的,本發(fā)明第五方面實施例提出的客戶端設備,包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內部,處理器和存儲器設置在電路板上;電源電路,用于為客戶端設備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于執(zhí)行以下步驟:生成紋理圖片;確定驗證碼的位置;在所述驗證碼的位置,對所述紋理圖片的像素值進行修改,得到驗證碼圖片。
[0018]本發(fā)明第五方面實施例提出的客戶端設備,通過對紋理圖片中對應驗證碼的位置處的像素值進行修改,可以在紋理圖片中驗證碼的位置處出現(xiàn)像素值變化,人眼可以捕捉到這種變化,從而識別出驗證碼,但是,由于這些位置的像素值不連續(xù),并且與背景差別不大,機器難以識別,從而降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0019]為達到上述目的,本發(fā)明第六方面實施例提出的客戶端設備,包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內部,處理器和存儲器設置在電路板上;電源電路,用于為客戶端設備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于執(zhí)行以下步驟:顯示驗證碼圖片,其中,所述驗證碼圖片是在驗證碼的位置,對紋理圖片的像素值進行修改后得到的;接收用戶輸入;根據(jù)所述驗證碼圖片對所述用戶輸入進行驗證。
[0020]本發(fā)明第六方面實施例提出的客戶端設備,通過在驗證時采用驗證碼圖片,且該驗證碼圖片的是紋理圖片中在驗證碼所在位置進行像素值修改后得到的,可以實現(xiàn)采用的驗證碼圖片中驗證碼的不連續(xù)性,且背景和驗證碼差別較小,因此,可以降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0021]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到?!緦@綀D】
【附圖說明】
[0022]本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
[0023]圖1為本發(fā)明一實施例提出的驗證碼圖片的生成方法的流程示意圖;
[0024]圖2是本發(fā)明實施例中一種紋理圖片的示意圖;
[0025]圖3為本發(fā)明實施例中另一種紋理圖片的示意圖;
[0026]圖4為本發(fā)明實施例中一種初始的驗證碼圖片的示意圖;
[0027]圖5為本發(fā)明實施例中生成的一種驗證碼圖片的示意圖;
[0028]圖6為本發(fā)明實施例中生成的另一種驗證碼圖片的示意圖;
[0029]圖7為本發(fā)明另一實施例提出的驗證碼圖片的生成方法的流程示意圖;
[0030]圖8為本發(fā)明另一實施例提出的驗證碼的生成裝置的結構示意圖;
[0031]圖9為本發(fā)明另一實施例提出的驗證方法的流程示意圖;
[0032]圖10為本發(fā)明另一實施例提出的驗證裝置的結構示意圖。
【具體實施方式】
[0033]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反,本發(fā)明的實施例包括落入所附加權利要求書的精神和內涵范圍內的所有變化、修改和等同物。
[0034]圖1為本發(fā)明一實施例提出的驗證碼圖片的生成方法的流程示意圖,該方法包括:
[0035]Sll:生成紋理圖片。
[0036]其中,該紋理圖片可以是彩色圖片,也可以是灰度圖片。本發(fā)明實施例中以紋理圖片是灰度圖片為例。
[0037]為了更好的得到非連續(xù)的驗證碼,該紋理圖片可以由像素值非連續(xù)變化的像素組成。即,紋理圖片各像素點的顏色值(RGB值)或灰度值相差較大。
[0038]進一步的,紋理圖片的直方圖可以是雙峰分布。以灰度圖片為例,灰度圖片的直方圖是用來統(tǒng)計灰度出現(xiàn)的頻次,一般而言,橫軸為灰度,縱軸為歸一化頻次。當灰度圖片的直方圖是雙峰分布時,就可以保證該灰度圖片的像素值是非連續(xù)分布的,例如該灰度圖片由黑色和白色的像素組成時,在直方圖中,黑色像素集中在橫軸為O的地方,白色像素集中在橫軸為255的地方,橫軸為(0,255)這一區(qū)間中沒有像素分布。當紋理圖片的直方圖是雙峰分布時,也就可以保證紋理圖片的像素值是非連續(xù)的。
[0039]另一方面,紋理圖片包括一種紋理或者至少兩種的紋理。本發(fā)明實施例以紋理圖片由黑色像素和白色像素組成為例,參見圖2和圖3,分別給出了紋理圖片由一種紋理組成的示意圖,以及紋理圖片由兩種紋理組成的示意圖。
[0040]S12:確定驗證碼的位置;
[0041]其中,驗證碼的位置可以根據(jù)預先設定的初始的驗證碼圖片確定。
[0042]初始的驗證碼圖片包括驗證碼和背景。相關技術中,也可以在背景上顯示出驗證碼,因此,生成初始的驗證碼圖片的具體流程可以參見相關技術,在此不再贅述。
[0043]參見圖4,給出了一種初始的驗證碼圖片的示意圖,該圖片中的驗證碼是0-9這10個數(shù)字,背景是白色圖案。
[0044]初始的驗證碼圖片的大小可以與紋理圖片的大小相同,例如,初始的驗證碼圖片和紋理圖片在橫縱向都包含相同個數(shù)的像素。
[0045]S13:在所述驗證碼的位置,對所述紋理圖片的像素值進行修改,得到驗證碼圖片。
[0046]其中,以初始的驗證碼圖片為圖4所示的圖片為例,驗證碼的顏色是黑色,背景的顏色是白色,黑色像素的灰度值是0,白色像素的灰度值是255。
[0047]在紋理圖片中,對應每個像素,查找初始的驗證碼圖片中該位置是否為驗證碼所在位置,如果是就對紋理圖片中的該像素的像素值進行修改。例如,對于紋理圖片中的某一像素A,假設A的位置坐標是(xO,yO),那么看初始的驗證碼圖片中(xO,y0)位置處像素的像素值,如果該像素值是0,那么表明該位置就是驗證碼的位置,也就是紋理圖片中像素A的位置是驗證碼的位置,需要對像素A的像素值進行修改。反之,如果初始的驗證碼圖片中(xO, y0)位置處像素的像素值是255,就表明該位置不是驗證碼的位置,就不對紋理圖片中該位置像素的像素值進行修改。
[0048]在修改時,像素值較大,則減小一個設定值,像素值較小,則增加一個設定值。例如,紋理圖片由黑白圖案組成,紋理圖片中的像素A的像素值需要修改,那么當像素A的像素值為O時,則增加一個設定值,當像素A的像素值為255時,則減小一個設定值。
[0049]進一步的,不同位置增加或減小的設定值可以相同或不同,增加時采用的設定值和減小時采用的設定值可以相同或不同。例如,像素A和像素B的像素值都需要修改時,假設像素A和像素B的像素值都為0,那么可以將像素A的像素值增加第一值,而將像素B的像素值增加第二值;或者,假設像素A和像素B的像素值都為255,那么可以將像素A的像素值減小第一值,而將像素B的像素值減小第二值;或者,假設像素A的像素值為0,像素B的像素值為255,那么可以將像素A的像素值增加第一值,而將像素B的像素值減小第二值。
[0050]由于在驗證碼位置處對紋理圖片中像素的像素值進行了修改,就可以使得這些位置相對于未修改像素值的位置比較顯著(salient),人眼看到這些顯著位置后,就可以識別出驗證碼。
[0051]圖5和圖6分別給出了兩種驗證碼圖片的示意圖,該兩種驗證碼圖片都是采用上述流程在驗證碼位置處對紋理圖片的像素值進行修改后得到的,不同的是,圖5以紋理圖片包含一種紋理為例,圖6以紋理圖片包含兩種紋理為例。
[0052]參見圖5或圖6,人眼可以在該驗證碼圖片中可以看到驗證碼,需要說明的是,由于顯示器和光折射等原因,人眼可以在側面可以看到更清晰的驗證碼。但是,由于該驗證碼圖片是對紋理圖片的像素值進行修改后得到的,驗證碼的灰度值或RGB值不再是連續(xù)的,機器就難以識別,并且,驗證碼和作為背景的紋理之間的差異較小,這就增加了機器識別的難度。
[0053]本實施例通過對紋理圖片中對應驗證碼的位置處的像素值進行修改,可以在紋理圖片中驗證碼的位置處出現(xiàn)像素值變化,人眼可以捕捉到這種變化,從而識別出驗證碼,但是,由于這些位置的像素值不連續(xù),并且與背景差別不大,機器難以識別,從而降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。[0054]圖7為本發(fā)明另一實施例提出的驗證碼圖片的生成方法的流程示意圖,本實施例結合一具體例子給出一種具體實現(xiàn)流程,該方法包括:
[0055]S71:生成紋理圖片和初始的驗證碼圖片;
[0056]本實施例中,假設紋理圖片為黑白組成的灰度圖片,初始的驗證碼圖片中驗證碼是黑色,背景是白色。
[0057]具體生成紋理圖片和初始的驗證碼圖片的步驟可以參見圖1所示實施例,在此不再贅述。
[0058]S72:在紋理圖片中選擇一個像素,獲取該像素的位置坐標,判斷在初始的驗證碼圖片中,該位置上的像素的灰度值是否為0,若是,執(zhí)行S73,否則執(zhí)行S76。
[0059]假設在紋理圖片中選擇的像素為像素A,該像素的位置坐標為(xO,y0),該步驟是要判斷在初始的驗證碼圖片中,位置(xO,y0)處像素的灰度值是否為0,其中,當灰度值為O時,表明該位置為驗證碼所在位置,反之,當灰度值為255時,表明該位置為背景所在位置。
[0060]S73:判斷在紋理圖片中該位置像素的灰度值是否為0,若是,執(zhí)行S74,否則,執(zhí)行S75。
[0061]例如,判斷像素A的灰度值是否為O。
[0062]S74:在紋理圖片中將該位置像素的灰度值增加第一設定值。之后,執(zhí)行S77。
[0063]例如,將像素A的灰度值增加第一設定值。
[0064]S75:在紋理圖片中將該位置像素的灰度值減小第二設定值。之后,執(zhí)行S77。
[0065]例如,將像素A的灰度值減小第二設定值。
[0066]第一設定值和第二設定值可以相同或不同。并且,第一設定值和第二設定值可以為預先設定的小于設定閾值的值。
[0067]S76:在紋理圖片中保持將位置像素的灰度值不變。
[0068]例如,保持像素A的灰度值不變。
[0069]S77:判斷在紋理圖片中是否存在未選擇的像素,若是,重復執(zhí)行S72及其后續(xù)步驟,否則,執(zhí)行S78。
[0070]S78:流程結束。
[0071]本實施例通過在紋理圖片中對應驗證碼所在位置,對像素值進行修改,可以使得這些位置的像素較為顯著,實現(xiàn)人眼對驗證碼的識別;另外,通過對像素值進行修改,可以實現(xiàn)像素值的非連續(xù)變化,增加機器識別難度;并且,采用黑白灰度的紋理圖片,可以進一步保證像素值的非連續(xù)變化,進一步增加機器識別難度;再者,在修改像素值時增加或減小的值為較小值,可以降低驗證碼和紋理之間的差異,也可以從另一方面增加機器識別難度。因此,本實施例可以增加機器對驗證碼的識別難度,降低機器識別成功率,降低驗證碼被機器破解的風險,保證網(wǎng)絡安全性。
[0072]圖8為本發(fā)明另一實施例提出的驗證碼的生成裝置的結構示意圖,該裝置80包括生成模塊81、確定模塊82和處理模塊83。
[0073]生成模塊81用于生成紋理圖片;確定模塊82用于確定驗證碼的位置;處理模塊83用于在所述驗證碼的位置,對所述紋理圖片的像素值進行修改,得到驗證碼圖片。
[0074]一個實施例中,所述生成模塊生成的所述紋理圖片由像素值非連續(xù)變化的像素組成。[0075]另一個實施例中,所述生成模塊生成的所述紋理圖片的直方圖是雙峰分布。
[0076]另一個實施例中,所述處理模塊具體用于:
[0077]在修改前的所述像素值大于設定值時,減小所述像素值;或者,
[0078]在修改前的所述像素值小于設定值時,增加所述像素值。
[0079]另一個實施例中,所述處理模塊具體用于:
[0080]在減小像素值時,不同位置減小的像素值不同;或者,
[0081]在增加像素值時,不同位置增加的像素值不同;或者,
[0082]在減小像素值時,不同位置減小的像素值相同,在增加像素值時,不同位置增加的像素值相同,且減小的像素值與增加的像素值不同或者相同。
[0083]另一個實施例中,所述生成模塊生成的所述紋理圖片包括一種紋理或者至少兩種的紋理。
[0084]另一個實施例中,所述生成模塊生成的所述紋理圖片為灰度圖片或者彩色圖片。
[0085]另一個實施例中,所述確定模塊具體用于:
[0086]根據(jù)預先設定,生成初始的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背
旦
牙、;
[0087]根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
[0088]另一個實施例中,所述確定模塊具體用于:
[0089]根據(jù)預先設定,生成初始的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背
旦
牙、;
[0090]根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
[0091]本實施例的裝置的具體處理流程可以參見上述驗證碼圖片的生成方法的實施例,在此不再贅述。
[0092]本實施例通過對紋理圖片中對應驗證碼的位置處的像素值進行修改,可以在紋理圖片中驗證碼的位置處出現(xiàn)像素值變化,人眼可以捕捉到這種變化,從而識別出驗證碼,但是,由于這些位置的像素值不連續(xù),并且與背景差別不大,機器難以識別,從而降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0093]圖9為本發(fā)明另一實施例提出的驗證方法的流程示意圖,該方法包括:
[0094]S91:顯示驗證碼圖片,其中,所述驗證碼圖片是在驗證碼的位置,對紋理圖片的像素值進行修改后得到的;
[0095]S92:接收用戶輸入;
[0096]S93:根據(jù)所述驗證碼圖片對所述用戶輸入進行驗證。
[0097]一個實施例中,所述紋理圖片由像素值非連續(xù)變化的像素組成。
[0098]另一個實施例中,所述紋理圖片的直方圖是雙峰分布。
[0099]另一個實施例中,所述對紋理圖片的像素值進行修改,包括:
[0100]在修改前的所述像素值大于設定值時,減小所述像素值;或者,
[0101]在修改前的所述像素值小于設定值時,增加所述像素值。
[0102]另一個實施例中,在減小像素值時,不同位置減小的像素值不同;或者,
[0103]在增加像素值時,不同位置增加的像素值不同;或者,
[0104]在減小像素值時,不同位置減小的像素值相同,在增加像素值時,不同位置增加的像素值相同,且減小的像素值與增加的像素值不同或者相同。
[0105]另一個實施例中,所述紋理圖片包括一種紋理或者至少兩種的紋理。
[0106]另一個實施例中,所述紋理圖片為灰度圖片或者彩色圖片。
[0107]另一個實施例中,所述驗證碼的位置采用如下方式確定:
[0108]根據(jù)預先設定,生成初始的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背
旦
牙、;
[0109]根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
[0110]另一個實施例中,所述初始的驗證碼圖片的大小與所述紋理圖片的大小相同。
[0111]本實施例中采用的驗證碼圖片可以具體參見采用上述驗證碼圖片的生成方法得到的驗證碼圖片,在此不再贅述。
[0112]本實施例通過在驗證時采用驗證碼圖片,且該驗證碼圖片的是紋理圖片中在驗證碼所在位置進行像素值修改后得到的,可以實現(xiàn)采用的驗證碼圖片中驗證碼的不連續(xù)性,且背景和驗證碼差別較小,因此,可以降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0113]圖10為本發(fā)明另一實施例提出的驗證裝置的結構示意圖,該裝置100包括顯示模塊101、接收模塊102和驗證模塊103。
[0114]顯示模塊101用于顯示驗證碼圖片,其中,所述驗證碼圖片是在驗證碼的位置,對紋理圖片的像素值進行修改后得到的;接收模塊102用于接收用戶輸入;驗證模塊103用于根據(jù)所述驗證碼圖片對所述用戶輸入進行驗證。
[0115]一個實施例中,所述紋理圖片由像素值非連續(xù)變化的像素組成。
[0116]另一個實施例中,所述紋理圖片的直方圖是雙峰分布。
[0117]另一個實施例中,所述紋理圖片的像素值采用如下方式修改:
[0118]在修改前的所述像素值大于設定值時,減小所述像素值;或者,
[0119]在修改前的所述像素值小于設定值時,增加所述像素值。
[0120]另一個實施例中,在減小像素值時,不同位置減小的像素值不同;或者,
[0121]在增加像素值時,不同位置增加的像素值不同;或者,
[0122]在減小像素值時,不同位置減小的像素值相同,在增加像素值時,不同位置增加的像素值相同,且減小的像素值與增加的像素值不同或者相同。
[0123]另一個實施例中,所述紋理圖片包括一種紋理或者至少兩種的紋理。
[0124]另一個實施例中,所述紋理圖片為灰度圖片或者彩色圖片。
[0125]另一個實施例中,所述驗證碼的位置采用如下方式確定:
[0126]根據(jù)預先設定,生成初始的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背
旦
牙、;
[0127]根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
[0128]另一個實施例中,所述初始的驗證碼圖片的大小與所述紋理圖片的大小相同。
[0129]本實施例中采用的驗證碼圖片可以具體參見采用上述驗證碼圖片的生成方法得到的驗證碼圖片,在此不再贅述。
[0130]本實施例通過在驗證時采用驗證碼圖片,且該驗證碼圖片的是紋理圖片中在驗證碼所在位置進行像素值修改后得到的,可以實現(xiàn)采用的驗證碼圖片中驗證碼的不連續(xù)性,且背景和驗證碼差別較小,因此,可以降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0131]本發(fā)明實施例還提供了一種客戶端設備,該客戶端設備包括殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內部,處理器和存儲器設置在電路板上;電源電路,用于為該客戶端設備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于執(zhí)行以下步驟:
[0132]SlT:生成紋理圖片。
[0133]其中,該紋理圖片可以是彩色圖片,也可以是灰度圖片。本發(fā)明實施例中以紋理圖片是灰度圖片為例。
[0134]為了更好的得到非連續(xù)的驗證碼,該紋理圖片可以由像素值非連續(xù)變化的像素組成。即,紋理圖片各像素點的顏色值(RGB值)或灰度值相差較大。
[0135]進一步的,紋理圖片的直方圖可以是雙峰分布。以灰度圖片為例,灰度圖片的直方圖是用來統(tǒng)計灰度出現(xiàn)的頻次,一般而言,橫軸為灰度,縱軸為歸一化頻次。當灰度圖片的直方圖是雙峰分布時,就可以保證該灰度圖片的像素值是非連續(xù)分布的,例如該灰度圖片由黑色和白色的像素組成時,在直方圖中,黑色像素集中在橫軸為O的地方,白色像素集中在橫軸為255的地方,橫軸為(0,255)這一區(qū)間中沒有像素分布。當紋理圖片的直方圖是雙峰分布時,也就可以保證紋理圖片的像素值是非連續(xù)的。
[0136]另一方面,紋理圖片包括一種紋理或者至少兩種的紋理。本發(fā)明實施例以紋理圖片由黑色像素和白色像素組成為例,參見圖2和圖3,分別給出了紋理圖片由一種紋理組成的示意圖,以及紋理圖片由兩種紋理組成的示意圖。
[0137]S12’:確定驗證碼的位置;
[0138]其中,驗證碼的位置可以根據(jù)預先設定的初始的驗證碼圖片確定。
[0139]初始的驗證碼圖片包括驗證碼和背景。相關技術中,也可以在背景上顯示出驗證碼,因此,生成初始的驗證碼圖片的具體流程可以參見相關技術,在此不再贅述。
[0140]參見圖4,給出了一種初始的驗證碼圖片的示意圖,該圖片中的驗證碼是0-9這10個數(shù)字,背景是白色圖案。
[0141]初始的驗證碼圖片的大小可以與紋理圖片的大小相同,例如,初始的驗證碼圖片和紋理圖片在橫縱向都包含相同個數(shù)的像素。
[0142]S13’:在所述驗證碼的位置,對所述紋理圖片的像素值進行修改,得到驗證碼圖片。
[0143]其中,以初始的驗證碼圖片為圖4所示的圖片為例,驗證碼的顏色是黑色,背景的顏色是白色,黑色像素的灰度值是0,白色像素的灰度值是255。
[0144]在紋理圖片中,對應每個像素,查找初始的驗證碼圖片中該位置是否為驗證碼所在位置,如果是就對紋理圖片中的該像素的像素值進行修改。例如,對于紋理圖片中的某一像素A,假設A的位置坐標是(xO,y0),那么看初始的驗證碼圖片中(xO,y0)位置處像素的像素值,如果該像素值是0,那么表明該位置就是驗證碼的位置,也就是紋理圖片中像素A的位置是驗證碼的位置,需要對像素A的像素值進行修改。反之,如果初始的驗證碼圖片中(xO, y0)位置處像素的像素值是255,就表明該位置不是驗證碼的位置,就不對紋理圖片中該位置像素的像素值進行修改。
[0145]在修改時,像素值較大,則減小一個設定值,像素值較小,則增加一個設定值。例如,紋理圖片由黑白圖案組成,紋理圖片中的像素A的像素值需要修改,那么當像素A的像素值為O時,則增加一個設定值,當像素A的像素值為255時,則減小一個設定值。
[0146]進一步的,不同位置增加或減小的設定值可以相同或不同,增加時采用的設定值和減小時采用的設定值可以相同或不同。例如,像素A和像素B的像素值都需要修改時,假設像素A和像素B的像素值都為0,那么可以將像素A的像素值增加第一值,而將像素B的像素值增加第二值;或者,假設像素A和像素B的像素值都為255,那么可以將像素A的像素值減小第一值,而將像素B的像素值減小第二值;或者,假設像素A的像素值為0,像素B的像素值為255,那么可以將像素A的像素值增加第一值,而將像素B的像素值減小第二值。
[0147]由于在驗證碼位置處對紋理圖片中像素的像素值進行了修改,就可以使得這些位置相對于未修改像素值的位置比較顯著(salient),人眼看到這些顯著位置后,就可以識別出驗證碼。
[0148]圖5和圖6分別給出了兩種驗證碼圖片的示意圖,該兩種驗證碼圖片都是采用上述流程在驗證碼位置處對紋理圖片的像素值進行修改后得到的,不同的是,圖5以紋理圖片包含一種紋理為例,圖6以紋理圖片包含兩種紋理為例。
[0149]參見圖5或圖6,人眼可以在該驗證碼圖片中可以看到驗證碼,需要說明的是,由于顯示器和光折射等原因,人眼可以在側面可以看到更清晰的驗證碼。但是,由于該驗證碼圖片是對紋理圖片的像素值進行修改后得到的,驗證碼的灰度值或RGB值不再是連續(xù)的,機器就難以識別,并且,驗證碼和作為背景的紋理之間的差異較小,這就增加了機器識別的難度。
[0150]本實施例通過對紋理圖片中對應驗證碼的位置處的像素值進行修改,可以在紋理圖片中驗證碼的位置處出現(xiàn)像素值變化,人眼可以捕捉到這種變化,從而識別出驗證碼,但是,由于這些位置的像素值不連續(xù),并且與背景差別不大,機器難以識別,從而降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0151]另一個實施例中,處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于執(zhí)行以下步驟:
[0152]S71’:生成紋理圖片和初始的驗證碼圖片;
[0153]本實施例中,假設紋理圖片為黑白組成的灰度圖片,初始的驗證碼圖片中驗證碼是黑色,背景是白色。
[0154]具體生成紋理圖片和初始的驗證碼圖片的步驟可以參見圖1所示實施例,在此不再贅述。
[0155]S72’:在紋理圖片中選擇一個像素,獲取該像素的位置坐標,判斷在初始的驗證碼圖片中,該位置上的像素的灰度值是否為0,若是,執(zhí)行S73’,否則執(zhí)行S76’。
[0156]假設在紋理圖片中選擇的像素為像素A,該像素的位置坐標為(x0,y0),該步驟是要判斷在初始的驗證碼圖片中,位置(xO,yO)處像素的灰度值是否為0,其中,當灰度值為O時,表明該位置為驗證碼所在位置,反之,當灰度值為255時,表明該位置為背景所在位置。
[0157]S73’:判斷在紋理圖片中該位置像素的灰度值是否為0,若是,執(zhí)行S74’,否則,執(zhí)行 S75,。[0158]例如,判斷像素A的灰度值是否為O。
[0159]S74’:在紋理圖片中將該位置像素的灰度值增加第一設定值。之后,執(zhí)行S77’。
[0160]例如,將像素A的灰度值增加第一設定值。
[0161]S75’:在紋理圖片中將該位置像素的灰度值減小第二設定值。之后,執(zhí)行S77’。
[0162]例如,將像素A的灰度值減小第二設定值。
[0163]第一設定值和第二設定值可以相同或不同。并且,第一設定值和第二設定值可以為預先設定的小于設定閾值的值。
[0164]S76 ’:在紋理圖片中保持將位置像素的灰度值不變。
[0165]例如,保持像素A的灰度值不變。
[0166]S77’:判斷在紋理圖片中是否存在未選擇的像素,若是,重復執(zhí)行S72’及其后續(xù)步驟,否則,執(zhí)行S78’。
[0167]S78’:流程結束。
[0168]本實施例通過在紋理圖片中對應驗證碼所在位置,對像素值進行修改,可以使得這些位置的像素較為顯著,實現(xiàn)人眼對驗證碼的識別;另外,通過對像素值進行修改,可以實現(xiàn)像素值的非連續(xù)變化,增加機器識別難度;并且,采用黑白灰度的紋理圖片,可以進一步保證像素值的非連續(xù)變化,進一步增加機器識別難度;再者,在修改像素值時增加或減小的值為較小值,可以降低驗證碼和紋理之間的差異,也可以從另一方面增加機器識別難度。因此,本實施例可以增加機器對驗證碼的識別難度,降低機器識別成功率,降低驗證碼被機器破解的風險,保證網(wǎng)絡安全性。
[0169]本發(fā)明實施例還提供了一種客戶端設備,該客戶端設備包括殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內部,處理器和存儲器設置在電路板上;電源電路,用于為該客戶端設備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于執(zhí)行以下步驟:
[0170]S91’:顯示驗證碼圖片,其中,所述驗證碼圖片是在驗證碼的位置,對紋理圖片的像素值進行修改后得到的;
[0171]S92’:接收用戶輸入;
[0172]S93 ’:根據(jù)所述驗證碼圖片對所述用戶輸入進行驗證。
[0173]一個實施例中,所述紋理圖片由像素值非連續(xù)變化的像素組成。
[0174]另一個實施例中,所述紋理圖片的直方圖是雙峰分布。
[0175]另一個實施例中,所述對紋理圖片的像素值進行修改,包括:
[0176]在修改前的所述像素值大于設定值時,減小所述像素值;或者,
[0177]在修改前的所述像素值小于設定值時,增加所述像素值。
[0178]另一個實施例中,在減小像素值時,不同位置減小的像素值不同;或者,
[0179]在增加像素值時,不同位置增加的像素值不同;或者,
[0180]在減小像素值時,不同位置減小的像素值相同,在增加像素值時,不同位置增加的像素值相同,且減小的像素值與增加的像素值不同或者相同。
[0181]另一個實施例中,所述紋理圖片包括一種紋理或者至少兩種的紋理。
[0182]另一個實施例中,所述紋理圖片為灰度圖片或者彩色圖片。[0183]另一個實施例中,所述驗證碼的位置采用如下方式確定:
[0184]根據(jù)預先設定,生成初始的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背
旦
牙、;
[0185]根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
[0186]另一個實施例中,所述初始的驗證碼圖片的大小與所述紋理圖片的大小相同。
[0187]本實施例中采用的驗證碼圖片可以具體參見采用上述驗證碼圖片的生成方法得到的驗證碼圖片,在此不再贅述。
[0188]本實施例通過在驗證時采用驗證碼圖片,且該驗證碼圖片的是紋理圖片中在驗證碼所在位置進行像素值修改后得到的,可以實現(xiàn)采用的驗證碼圖片中驗證碼的不連續(xù)性,且背景和驗證碼差別較小,因此,可以降低機器識別成功率,降低驗證碼被破解的風險,提高網(wǎng)絡安全性。
[0189]需要說明的是,在本發(fā)明的描述中,術語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本發(fā)明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
[0190]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本發(fā)明的實施例所屬【技術領域】的技術人員所理解。
[0191]應當理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
[0192]本【技術領域】的普通技術人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
[0193]此外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
[0194]上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
[0195]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。[0196]在本發(fā)明的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“長度”、“寬度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底” “內”、“外”、“順時
針”、“逆時針”、“軸向”、“徑向”、“周向”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發(fā)明的限制。
[0197]在本發(fā)明中,除非另有明確的規(guī)定和限定,術語“安裝”、“相連”、“連接”、“固定”等術語應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或成一體;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通或兩個元件的相互作用關系。對于本領域的普通技術人員而言,可以根據(jù)具體情況理解上述術語在本發(fā)明中的具體含義。
[0198]在本發(fā)明中,除非另有明確的規(guī)定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接觸,或第一和第二特征通過中間媒介間接接觸。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或僅僅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或僅僅表示第一特征水平高度小于第二特征。
[0199]盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領域的普通技術人員在本發(fā)明的范圍內可以對上述實施例進行變化、修改、替換和變型。
【權利要求】
1.一種驗證碼圖片的生成方法,其特征在于,包括: 生成紋理圖片; 確定驗證碼的位置; 在所述驗證碼的位置,對所述紋理圖片的像素值進行修改,得到驗證碼圖片。
2.根據(jù)權利要求1所述的方法,其特征在于, 所述紋理圖片由像素值非連續(xù)變化的像素組成。
3.根據(jù)權利要求2所述的方法,其特征在于, 所述紋理圖片的直方圖是雙峰分布。
4.根據(jù)權利要求1至3任一項所述的方法,其特征在于,所述對所述紋理圖片的像素值進行修改,包括: 在修改前的所述像素值大于設定值時,減小所述像素值;或者, 在修改前的所述像素值小于設定值時,增加所述像素值。
5.根據(jù)權利要求4所述的方法,其特征在于, 在減小像素值時,不同位置減小的像素值不同;或者, 在增加像素值時,不同位置增加的像素值不同;或者, 在減小像素值時,不同位置減小的像素值相同,在增加像素值時,不同位置增加的像素值相同,且減小的像素值與增加的像素值不同或者相同。
6.根據(jù)權利要求1至3任一項所述的方法,其特征在于, 所述紋理圖片包括一種紋理或者至少兩種的紋理。
7.根據(jù)權利要求1至3任一項所述的方法,其特征在于, 所述紋理圖片為灰度圖片或者彩色圖片。
8.根據(jù)權利要求1至3任一項所述的方法,其特征在于,所述確定驗證碼的位置,包括: 根據(jù)預先設定,生成初始的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背景; 根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
9.根據(jù)權利要求8所述的方法,其特征在于,所述初始的驗證碼圖片的大小與所述紋理圖片的大小相同。
10.一種驗證碼圖片的生成裝置,其特征在于,包括: 生成模塊,用于生成紋理圖片; 確定模塊,用于確定驗證碼的位置; 處理模塊,用于在所述驗證碼的位置,對所述紋理圖片的像素值進行修改,得到驗證碼圖片。
11.根據(jù)權利要求10所述的裝置,其特征在于, 所述生成模塊生成的所述紋理圖片由像素值非連續(xù)變化的像素組成。
12.根據(jù)權利要求11所述的裝置,其特征在于, 所述生成模塊生成的所述紋理圖片的直方圖是雙峰分布。
13.根據(jù)權利要求10至12任一項所述的裝置,其特征在于,所述處理模塊具體用于: 在修改前的所述像素值大于設定值時,減小所述像素值;或者, 在修改前的所述像素值小于設定值時,增加所述像素值。
14.根據(jù)權利要求13所述的裝置,其特征在于,所述處理模塊具體用于: 在減小像素值時,不同位置減小的像素值不同;或者, 在增加像素值時,不同位置增加的像素值不同;或者, 在減小像素值時,不同位置減小的像素值相同,在增加像素值時,不同位置增加的像素值相同,且減小的像素值與增加的像素值不同或者相同。
15.根據(jù)權利要求10至12任一項所述的裝置,其特征在于, 所述生成模塊生成的所述紋理圖片包括一種紋理或者至少兩種的紋理。
16.根據(jù)權利要求10至12任一項所述的裝置,其特征在于, 所述生成模塊生成的所述紋理圖片為灰度圖片或者彩色圖片。
17.根據(jù)權利要求10至12任一項所述的裝置,其特征在于,所述確定模塊具體用于: 根據(jù)預先設定,生成初始的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背景; 根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
18.根據(jù)權利要求17所述的裝置,所述確定模塊生成的所述初始的驗證碼圖片的大小與所述生成模塊生成的所述紋理圖片的大小相同。
19.一種驗證方法,其特征在于,包括: 顯示驗證碼圖片,其中,所述驗證碼圖片是在驗證碼的位置,對紋理圖片的像素值進行修改后得到的; 接收用戶輸入; 根據(jù)所述驗證碼圖片對所述用戶輸入進行驗證。
20.根據(jù)權利要求19所述的方法,其特征在于, 所述紋理圖片由像素值非連續(xù)變化的像素組成。
21.根據(jù)權利要求20所述的方法,其特征在于, 所述紋理圖片的直方圖是雙峰分布。
22.根據(jù)權利要求19至21任一項所述的方法,其特征在于,所述對紋理圖片的像素值進行修改,包括: 在修改前的所述像素值大于設定值時,減小所述像素值;或者, 在修改前的所述像素值小于設定值時,增加所述像素值。
23.根據(jù)權利要求22所述的方法,其特征在于, 在減小像素值時,不同位置減小的像素值不同;或者, 在增加像素值時,不同位置增加的像素值不同;或者, 在減小像素值時,不同位置減小的像素值相同,在增加像素值時,不同位置增加的像素值相同,且減小的像素值與增加的像素值不同或者相同。
24.根據(jù)權利要求19至21任一項所述的方法,其特征在于, 所述紋理圖片包括一種紋理或者至少兩種的紋理。
25.根據(jù)權利要求19至21任一項所述的方法,其特征在于, 所述紋理圖片為灰度圖片或者彩色圖片。
26.根據(jù)權利要求19至21任一項所述的方法,其特征在于,所述驗證碼的位置采用如下方式確定: 根據(jù)預先設定,生成初始 的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背景;根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
27.根據(jù)權利要求26所述的方法,其特征在于,所述初始的驗證碼圖片的大小與所述紋理圖片的大小相同。
28.一種驗證裝置,其特征在于,包括: 顯示模塊,用于顯示驗證碼圖片,其中,所述驗證碼圖片是在驗證碼的位置,對紋理圖片的像素值進行修改后得到的; 接收模塊,用于接收用戶輸入; 驗證模塊,用于根據(jù)所述驗證碼圖片對所述用戶輸入進行驗證。
29.根據(jù)權利要求28所述的裝置,其特征在于, 所述紋理圖片由像素值非連續(xù)變化的像素組成。
30.根據(jù)權利要求29所述的裝置,其特征在于, 所述紋理圖片的直方圖是雙峰分布。
31.根據(jù)權利要求28至30任一項所述的裝置,其特征在于,所述紋理圖片的像素值采用如下方式修改: 在修改前的所述像 素值大于設定值時,減小所述像素值;或者, 在修改前的所述像素值小于設定值時,增加所述像素值。
32.根據(jù)權利要求31所述的裝置,其特征在于, 在減小像素值時,不同位置減小的像素值不同;或者, 在增加像素值時,不同位置增加的像素值不同;或者, 在減小像素值時,不同位置減小的像素值相同,在增加像素值時,不同位置增加的像素值相同,且減小的像素值與增加的像素值不同或者相同。
33.根據(jù)權利要求28至30任一項所述的裝置,其特征在于, 所述紋理圖片包括一種紋理或者至少兩種的紋理。
34.根據(jù)權利要求28至30任一項所述的裝置,其特征在于, 所述紋理圖片為灰度圖片或者彩色圖片。
35.根據(jù)權利要求28至30任一項所述的裝置,其特征在于,所述驗證碼的位置采用如下方式確定: 根據(jù)預先設定,生成初始的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背景; 根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
36.根據(jù)權利要求35所述的裝置,其特征在于,所述驗證碼的位置采用如下方式確定: 根據(jù)預先設定,生成初始的驗證碼圖片,所述初始的驗證碼圖片包括驗證碼和背景; 根據(jù)所述初始的驗證碼圖片,確定驗證碼的位置。
【文檔編號】G06F21/36GK103902875SQ201410077527
【公開日】2014年7月2日 申請日期:2014年3月4日 優(yōu)先權日:2014年3月4日
【發(fā)明者】丁二銳, 王云吉 申請人:百度在線網(wǎng)絡技術(北京)有限公司