本發(fā)明實(shí)施例涉及信息安全技術(shù)領(lǐng)域,尤其涉及驗(yàn)證碼的生成方法、驗(yàn)證方法及相應(yīng)裝置。
背景技術(shù):
全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試(Completely Automated Public Turing test to tell Computers and Humans Apart,CAPTCHA),俗稱驗(yàn)證碼,是一種區(qū)分用戶是計(jì)算機(jī)還是人的公共全自動(dòng)程序。驗(yàn)證碼作為一種輔助安全手段已在眾多網(wǎng)頁(yè)及應(yīng)用程序等方面被廣泛采用。
常規(guī)的驗(yàn)證碼一般為由一定數(shù)量的數(shù)字、字母或者文字等字符隨機(jī)組合形成的圖片,用戶在觀察驗(yàn)證碼圖片后,將其中包含的字符輸入到指定區(qū)域,若輸入正確,則驗(yàn)證通過(guò)。然而,用戶在輸入過(guò)程中,通常需要切換輸入法以實(shí)現(xiàn)不同種類字符的正確輸入,用戶操作復(fù)雜,且中文輸入費(fèi)時(shí)費(fèi)力,操作成本較高,在移動(dòng)終端中表現(xiàn)尤為明顯。此外,由于計(jì)算機(jī)對(duì)單個(gè)字符的識(shí)別率較高,若成功將驗(yàn)證碼圖片拆分成一個(gè)個(gè)字符圖片,則可能會(huì)被暴力破解,驗(yàn)證碼的安全性得不到保障。若為增強(qiáng)安全性而頻繁更換字體或樣式,又會(huì)提高驗(yàn)證碼的制作和維護(hù)成本。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的是提供驗(yàn)證碼的生成方法、驗(yàn)證方法及相應(yīng)裝置,以優(yōu)化現(xiàn)有的驗(yàn)證碼生成方案以及驗(yàn)證方案。
第一方面,本發(fā)明實(shí)施例提供了一種驗(yàn)證碼的生成方法,包括:
從驗(yàn)證碼字符庫(kù)中隨機(jī)選取預(yù)設(shè)數(shù)量的字符,得到待生成的驗(yàn)證碼圖片包含的全部單位字符;
從所述全部單位字符中隨機(jī)選取至少一個(gè)字符作為目標(biāo)單位字符;
對(duì)所述目標(biāo)單位字符進(jìn)行倒置處理;
根據(jù)倒置后的目標(biāo)單位字符和剩余單位字符生成驗(yàn)證碼圖片;
根據(jù)所述目標(biāo)單位字符在所生成的驗(yàn)證碼圖片中的位置信息和所述驗(yàn)證碼圖片生成驗(yàn)證碼。
第二方面,本發(fā)明實(shí)施例提供了一種驗(yàn)證碼的驗(yàn)證方法,應(yīng)用于對(duì)采用本發(fā)明實(shí)施例第一方面所述的驗(yàn)證碼的生成方法所生成的驗(yàn)證碼進(jìn)行驗(yàn)證,所述驗(yàn)證方法包括:
獲取用戶作用于所述驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼圖片上的點(diǎn)擊操作的點(diǎn)擊位置信息;
將所述點(diǎn)擊位置信息與目標(biāo)單位字符在所述驗(yàn)證碼圖片中的位置信息進(jìn)行匹配,根據(jù)匹配結(jié)果確定驗(yàn)證是否通過(guò)。
第三方面,本發(fā)明實(shí)施例提供了一種驗(yàn)證碼的生成裝置,包括:
單位字符選取模塊,用于從驗(yàn)證碼字符庫(kù)中隨機(jī)選取預(yù)設(shè)數(shù)量的字符,得到待生成的驗(yàn)證碼圖片包含的全部單位字符;
目標(biāo)單位字符選取模塊,用于從所述全部單位字符中隨機(jī)選取至少一個(gè)字符作為目標(biāo)單位字符;
倒置處理模塊,用于對(duì)所述目標(biāo)單位字符進(jìn)行倒置處理;
驗(yàn)證碼圖片生成模塊,用于根據(jù)倒置后的目標(biāo)單位字符和剩余單位字符生成驗(yàn)證碼圖片;
驗(yàn)證碼生成模塊,用于根據(jù)所述目標(biāo)單位字符在所生成的驗(yàn)證碼圖片中的位置信息和所述驗(yàn)證碼圖片生成驗(yàn)證碼。
第四方面,本發(fā)明實(shí)施例提供了一種驗(yàn)證碼的驗(yàn)證裝置,應(yīng)用于對(duì)采用本發(fā)明實(shí)施例第一方面所述的驗(yàn)證碼的生成方法所生成的驗(yàn)證碼進(jìn)行驗(yàn)證,所述驗(yàn)證裝置包括:
點(diǎn)擊位置信息獲取模塊,用于獲取用戶作用于所述驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼圖片上的點(diǎn)擊操作的點(diǎn)擊位置信息;
驗(yàn)證模塊,用于將所述點(diǎn)擊位置信息與目標(biāo)單位字符在所述驗(yàn)證碼圖片中的位置信息進(jìn)行匹配,根據(jù)匹配結(jié)果確定驗(yàn)證是否通過(guò)。
本發(fā)明實(shí)施例中提供的驗(yàn)證碼生成方案,從驗(yàn)證碼字符庫(kù)中隨機(jī)選取預(yù)設(shè)數(shù)量的字符,得到待生成的驗(yàn)證碼圖片包含的全部單位字符,從全部單位字符中隨機(jī)選取至少一個(gè)字符作為目標(biāo)單位字符,對(duì)目標(biāo)單位字符進(jìn)行倒置處理,根據(jù)倒置后的目標(biāo)單位字符和剩余單位字符生成驗(yàn)證碼圖片,根據(jù)目標(biāo)單位字符在所生成的驗(yàn)證碼圖片中的位置信息和驗(yàn)證碼圖片生成驗(yàn)證碼。通過(guò)采用上述技術(shù)方案,驗(yàn)證碼圖片中包含倒置的字符,在保證低制作成本的情況下增加了計(jì)算機(jī)對(duì)各個(gè)字符進(jìn)行拆分的難度,降低驗(yàn)證碼被暴力破解的概率,提高驗(yàn)證碼的安全性;并且,用戶在進(jìn)行驗(yàn)證碼驗(yàn)證時(shí)僅需要通過(guò)點(diǎn)擊倒置字符的方式即可輕松實(shí)現(xiàn)驗(yàn)證,操作簡(jiǎn)單,增強(qiáng)驗(yàn)證碼的易用性,可提升用戶體驗(yàn)。
附圖說(shuō)明
圖1a為現(xiàn)有技術(shù)中的一種字符輸入式驗(yàn)證碼的示意圖;
圖1b為現(xiàn)有技術(shù)中的又一種字符輸入式驗(yàn)證碼的示意圖;
圖2為現(xiàn)有技術(shù)中的一種圖形拖動(dòng)式驗(yàn)證碼的示意圖;
圖3為現(xiàn)有技術(shù)中的一種圖形點(diǎn)擊式驗(yàn)證碼的示意圖;
圖4為現(xiàn)有技術(shù)中的一種行為驗(yàn)證碼的示意圖;
圖5為本發(fā)明實(shí)施例一提供的一種驗(yàn)證碼的生成方法的流程示意圖;
圖6a為本發(fā)明實(shí)施例一提供的一種倒置處理效果示意圖;
圖6b為本發(fā)明實(shí)施例一提供的又一種倒置處理效果示意圖;
圖7為本發(fā)明實(shí)施例二提供的一種驗(yàn)證碼的生成方法的流程示意圖;
圖8為本發(fā)明實(shí)施例二提供的一種驗(yàn)證碼圖片示意圖;
圖9為本發(fā)明實(shí)施例三提供的一種驗(yàn)證碼的生成方法的流程示意圖;
圖10為本發(fā)明實(shí)施例三提供的一種驗(yàn)證碼圖片示意圖;
圖11為本發(fā)明實(shí)施例四提供的一種驗(yàn)證碼的驗(yàn)證方法的流程示意圖;
圖12為本發(fā)明實(shí)施例四提供的一種有效點(diǎn)擊區(qū)域示意圖;
圖13a為本發(fā)明實(shí)施例四提供的驗(yàn)證碼驗(yàn)證過(guò)程第一示意圖;
圖13b為本發(fā)明實(shí)施例四提供的驗(yàn)證碼驗(yàn)證過(guò)程第二示意圖;
圖13c為本發(fā)明實(shí)施例四提供的驗(yàn)證碼驗(yàn)證過(guò)程第三示意圖;
圖14為本發(fā)明實(shí)施例五提供的一種驗(yàn)證碼的生成裝置的結(jié)構(gòu)框圖;
圖15為本發(fā)明實(shí)施例六提供的一種驗(yàn)證碼的驗(yàn)證裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖并通過(guò)具體實(shí)施方式來(lái)進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
在更加詳細(xì)地討論示例性實(shí)施例之前應(yīng)當(dāng)提到的是,一些示例性實(shí)施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各步驟描述成順序的處理,但是其中的許多步驟可以被并行地、并發(fā)地或者同時(shí)實(shí)施。此外,各步驟的順序可以被重新安排。當(dāng)其操作完成時(shí)所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對(duì)應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
為了方便理解本發(fā)明實(shí)施例的技術(shù)方案以及相應(yīng)的有益效果,首先對(duì)現(xiàn)有技術(shù)中幾種常見(jiàn)的驗(yàn)證碼進(jìn)行介紹。
(1)字符輸入式驗(yàn)證碼
圖1a為現(xiàn)有技術(shù)中的一種字符輸入式驗(yàn)證碼的示意圖;圖1b為現(xiàn)有技術(shù)中的又一種字符輸入式驗(yàn)證碼的示意圖。字符輸入式驗(yàn)證碼是最為常見(jiàn)的一種驗(yàn)證碼,通常有英文字符數(shù)字混合驗(yàn)證碼(如圖1a所示)和中文驗(yàn)證碼(如圖1b所示)兩種。用戶在輸入過(guò)程中,通常需要切換輸入法以實(shí)現(xiàn)不同種類字符的正確輸入,用戶操作復(fù)雜,且中文輸入費(fèi)時(shí)費(fèi)力,操作成本較高,在移動(dòng)終端中表現(xiàn)尤為明顯。此外,K Chellapilla等人在2005年的論文中提出,現(xiàn)有技術(shù)對(duì)于單個(gè)英文字符可以達(dá)到很高的識(shí)別率。若成功將驗(yàn)證碼圖片拆分成一個(gè)個(gè)字符圖片,則可能會(huì)被暴力破解,驗(yàn)證碼的安全性得不到保障。
(2)圖形拖動(dòng)式驗(yàn)證碼
圖2為現(xiàn)有技術(shù)中的一種圖形拖動(dòng)式驗(yàn)證碼的示意圖,如圖2所示,此類驗(yàn)證碼通過(guò)讓用戶將一張圖片的缺失部分拖拽到對(duì)應(yīng)位置來(lái)進(jìn)行驗(yàn)證,但是這類驗(yàn)證碼通常會(huì)用很明顯的邊界標(biāo)識(shí)出圖片最終要到達(dá)的部分,識(shí)別成本比較低,而且拖動(dòng)是可以由機(jī)器模擬的,所以安全性偏低。
(3)圖形點(diǎn)擊式驗(yàn)證碼
圖3為現(xiàn)有技術(shù)中的一種圖形點(diǎn)擊式驗(yàn)證碼的示意圖,如圖3所示,用戶需要根據(jù)提示點(diǎn)擊符合提示內(nèi)容的圖片,此類驗(yàn)證碼需要維護(hù)一個(gè)巨大的圖片庫(kù),而且需要不斷更新,否則很容易會(huì)被暴力破解。此外,為了降低被破解的概率,圖片內(nèi)容有些不容易辨認(rèn),用戶也很可能選錯(cuò),用戶體驗(yàn)不佳。
(4)行為驗(yàn)證碼
圖4為現(xiàn)有技術(shù)中的一種行為驗(yàn)證碼的示意圖,行為驗(yàn)證碼不需要用戶進(jìn)行文本的輸入,從一定程度上優(yōu)化了用戶體驗(yàn)。但是這類驗(yàn)證碼需要收集大量用戶相關(guān)的數(shù)據(jù)作為判斷依據(jù),比如用戶鼠標(biāo)滑動(dòng)的軌跡、網(wǎng)際協(xié)議(Internet Protocol,IP)相關(guān)的數(shù)據(jù)、用戶請(qǐng)求的時(shí)間長(zhǎng)度以及用戶本地存儲(chǔ)的賬號(hào)信息等等。此外,還會(huì)存在無(wú)法判斷的情況,仍需要借助其他驗(yàn)證碼來(lái)進(jìn)行識(shí)別。因此,此類驗(yàn)證碼的制作成本也較高,安全性也不佳。
實(shí)施例一
圖5為本發(fā)明實(shí)施例一提供的一種驗(yàn)證碼的生成方法的流程示意圖,該方法可以由驗(yàn)證碼的生成裝置執(zhí)行,其中該裝置可由軟件和/或硬件實(shí)現(xiàn),一般可集成在服務(wù)器等終端中。如圖5所示,該方法包括:
步驟501、從驗(yàn)證碼字符庫(kù)中隨機(jī)選取預(yù)設(shè)數(shù)量的字符,得到待生成的驗(yàn)證碼圖片包含的全部單位字符。
示例性的,驗(yàn)證碼字符庫(kù)中可包括數(shù)字、字母或者文字等字符。優(yōu)選的,驗(yàn)證碼字符庫(kù)中僅包括中文字符。這樣設(shè)置的好處在于,相比英文和數(shù)字來(lái)說(shuō),中文的可用字符數(shù)量更多,減少了被遍歷的可能性,且識(shí)別難度更大,更不容易被暴力破解。需要說(shuō)明的是,為了防止字符后續(xù)被進(jìn)行倒置后與倒置前不容易區(qū)分的情況發(fā)生,在設(shè)置驗(yàn)證碼字符庫(kù)時(shí),可排除上下對(duì)稱的字符,也可排除左右對(duì)稱的字符。
示例性的,預(yù)設(shè)數(shù)量可以是預(yù)先設(shè)置的一個(gè)固定值(如7個(gè)),也可以是預(yù)先設(shè)置的數(shù)量范圍(如4個(gè)至10個(gè))中的隨機(jī)一個(gè)值。根據(jù)預(yù)設(shè)數(shù)量的取值從驗(yàn)證碼字符庫(kù)中隨機(jī)選取相應(yīng)數(shù)量的字符,將所選取的字符全部用于生成驗(yàn)證碼圖片。
步驟502、從全部單位字符中隨機(jī)選取至少一個(gè)字符作為目標(biāo)單位字符。
示例性的,可按照步驟501中選取全部單位字符的先后順序?qū)⑷繂挝蛔址懦尚蛄校谠撔蛄兄须S機(jī)選取至少一個(gè)字符作為目標(biāo)單位字符,即目標(biāo)單位字符的數(shù)量以及在該序列中所處的位置均為隨機(jī)的,可增加破解復(fù)雜度。優(yōu)選的,目標(biāo)單位字符的數(shù)量可與全部單位字符的數(shù)量相關(guān),例如,目標(biāo)單位字符的數(shù)量小于全部單位字符的數(shù)量的預(yù)設(shè)比例(如50%)。本發(fā)明實(shí)施例的方法旨在生成一種使用戶通過(guò)點(diǎn)擊來(lái)實(shí)現(xiàn)驗(yàn)證的驗(yàn)證碼,目標(biāo)單位字符對(duì)應(yīng)于用戶預(yù)期點(diǎn)擊的單位字符??梢岳斫獾氖?,目標(biāo)單位字符的數(shù)量較少,用戶操作相對(duì)更便捷;目標(biāo)單位字符的數(shù)量較多,驗(yàn)證碼安全性能相對(duì)更好。在實(shí)際應(yīng)用本發(fā)明實(shí)施例的方法時(shí),可充分考慮上述各因素來(lái)確定目標(biāo)單位字符的具體數(shù)量。
步驟503、對(duì)目標(biāo)單位字符進(jìn)行倒置處理。
示例性的,本實(shí)施例中的倒置處理具體可指將目標(biāo)單位字符旋轉(zhuǎn)預(yù)設(shè)角度,該預(yù)設(shè)角度的取值范圍可圍繞180度進(jìn)行選取,例如,可為150度至210度之間。預(yù)設(shè)角度優(yōu)選為180度,即對(duì)目標(biāo)單位字符進(jìn)行倒置處理具體指將目標(biāo)單位字符旋轉(zhuǎn)180度。圖6a為本發(fā)明實(shí)施例一提供的一種倒置處理示意圖,將“沒(méi)”字進(jìn)行上述倒置處理后的效果如圖6a所示。
此外,本實(shí)施例中的倒置處理還可指將目標(biāo)單位字符進(jìn)行水平方向的鏡面處理。圖6b為本發(fā)明實(shí)施例一提供的又一種倒置處理效果示意圖,將“沒(méi)”字進(jìn)行水平方向的鏡面處理后的效果如圖6b所示。
步驟504、根據(jù)倒置后的目標(biāo)單位字符和剩余單位字符生成驗(yàn)證碼圖片。
本步驟中的剩余單位字符為待生成的驗(yàn)證碼圖片包含的全部單位字符中除了目標(biāo)單位字符以外的單位字符。示例性的,可按照步驟502中所述的序列的順序?qū)⒌怪煤蟮哪繕?biāo)單位字符和剩余單位字符合成為一張圖像,得到驗(yàn)證碼圖片。具體的圖像生成方式本實(shí)施例不作具體限定,可參照現(xiàn)有的圖像生成技術(shù)??梢岳斫獾氖?,目標(biāo)單位字符經(jīng)過(guò)了倒置處理,在所生成的驗(yàn)證碼圖片中與其他單位字符的朝向存在較大差異,人眼很容易進(jìn)行區(qū)分,而對(duì)計(jì)算機(jī)而言,由于字符被倒置,處于倒立的狀態(tài),與處于正立狀態(tài)的字符相比,提高了識(shí)別難度,增加了阻止破解的成功率。
步驟505、根據(jù)目標(biāo)單位字符在所生成的驗(yàn)證碼圖片中的位置信息和驗(yàn)證碼圖片生成驗(yàn)證碼。
示例性的,為了使驗(yàn)證碼能夠應(yīng)用于人機(jī)驗(yàn)證,需要將目標(biāo)單位字符在所生成的驗(yàn)證碼圖片中的位置信息加入所要生成的驗(yàn)證碼中。位置信息可包括字符中心橫坐標(biāo)、字符中心縱坐標(biāo)、字符尺寸(可包括字符寬度和字符高度)和旋轉(zhuǎn)角度。例如,可將位置信息嵌入驗(yàn)證碼圖片中,以生成驗(yàn)證碼;又如,可將位置信息作為驗(yàn)證碼圖片的附屬信息共同傳送給應(yīng)用該驗(yàn)證碼的網(wǎng)頁(yè)或者應(yīng)用程序等對(duì)象。
本發(fā)明實(shí)施例一提供的驗(yàn)證碼生成方法,從驗(yàn)證碼字符庫(kù)中隨機(jī)選取預(yù)設(shè)數(shù)量的字符,得到待生成的驗(yàn)證碼圖片包含的全部單位字符,從全部單位字符中隨機(jī)選取至少一個(gè)字符作為目標(biāo)單位字符,對(duì)目標(biāo)單位字符進(jìn)行倒置處理,根據(jù)倒置后的目標(biāo)單位字符和剩余單位字符生成驗(yàn)證碼圖片,根據(jù)目標(biāo)單位字符在所生成的驗(yàn)證碼圖片中的位置信息和驗(yàn)證碼圖片生成驗(yàn)證碼。通過(guò)采用上述技術(shù)方案,驗(yàn)證碼圖片中包含倒置的字符,在保證低制作成本的情況下增加了計(jì)算機(jī)對(duì)各個(gè)字符進(jìn)行拆分的難度,降低驗(yàn)證碼被暴力破解的概率,提高驗(yàn)證碼的安全性;并且,用戶在進(jìn)行驗(yàn)證碼驗(yàn)證時(shí)僅需要通過(guò)點(diǎn)擊倒置字符的方式即可輕松實(shí)現(xiàn)驗(yàn)證,操作簡(jiǎn)單,增強(qiáng)驗(yàn)證碼的易用性,可提升用戶體驗(yàn)。
實(shí)施例二
圖7為本發(fā)明實(shí)施例二提供的一種驗(yàn)證碼的生成方法的流程示意圖,本實(shí)施例以上述實(shí)施例為基礎(chǔ)進(jìn)行優(yōu)化,該方法包括如下步驟:
步驟701、從驗(yàn)證碼字符庫(kù)中隨機(jī)選取預(yù)設(shè)數(shù)量的字符,得到待生成的驗(yàn)證碼圖片包含的全部單位字符。
步驟702、從全部單位字符中隨機(jī)選取至少一個(gè)字符作為目標(biāo)單位字符。
步驟703、將全部單位字符中的每個(gè)單位字符旋轉(zhuǎn)第一角度。
其中,所述第一角度的取值范圍為大于-60度且小于60度,對(duì)于每個(gè)單位字符,所述第一角度的取值為所述取值范圍內(nèi)的任意一個(gè)數(shù)值。
執(zhí)行本步驟的好處在于,將全部單位字符旋轉(zhuǎn)一定的角度后,可進(jìn)一步提高計(jì)算機(jī)自動(dòng)識(shí)別難度,增加阻止破解的成功率。
步驟704、將旋轉(zhuǎn)第一角度后的目標(biāo)單位字符旋轉(zhuǎn)180度。
步驟705、根據(jù)倒置后的目標(biāo)單位字符和剩余單位字符生成驗(yàn)證碼圖片。
示例性的,圖8為本發(fā)明實(shí)施例二提供的一種驗(yàn)證碼圖片示意圖,如圖8所示,全部單位字符包括“是”、“理”、“聽(tīng)”、“它”、“合”、“沒(méi)”和“去”,被選取的目標(biāo)單位字符為“沒(méi)”,將全部單位字符中的每個(gè)單位字符旋轉(zhuǎn)第一角度,再將“沒(méi)”旋轉(zhuǎn)180度,最后生成了如圖8所示的驗(yàn)證碼圖片。
步驟706、根據(jù)目標(biāo)單位字符在所生成的驗(yàn)證碼圖片中的位置信息和驗(yàn)證碼圖片生成驗(yàn)證碼。
本發(fā)明實(shí)施例二在上述實(shí)施例基礎(chǔ)上,細(xì)化了對(duì)目標(biāo)單位字符進(jìn)行倒置處理的步驟,可進(jìn)一步提高計(jì)算機(jī)自動(dòng)識(shí)別難度,增加阻止破解的成功率。
實(shí)施例三
圖9為本發(fā)明實(shí)施例三提供的一種驗(yàn)證碼的生成方法的流程示意圖,本實(shí)施例以上述實(shí)施例為基礎(chǔ)進(jìn)行優(yōu)化,該方法包括如下步驟:
步驟901、從驗(yàn)證碼字符庫(kù)中隨機(jī)選取預(yù)設(shè)數(shù)量的字符,得到待生成的驗(yàn)證碼圖片包含的全部單位字符。
步驟902、從全部單位字符中隨機(jī)選取至少一個(gè)字符作為目標(biāo)單位字符。
步驟903、將全部單位字符中的每個(gè)單位字符旋轉(zhuǎn)第一角度。
其中,所述第一角度的取值范圍為大于-60度且小于60度,對(duì)于每個(gè)單位字符,所述第一角度的取值為所述取值范圍內(nèi)的任意一個(gè)數(shù)值。
步驟904、將旋轉(zhuǎn)第一角度后的目標(biāo)單位字符旋轉(zhuǎn)180度。
步驟905、按照預(yù)設(shè)規(guī)則調(diào)整倒置后的目標(biāo)單位字符和剩余單位字符中的每?jī)蓚€(gè)相鄰的單位字符之間的間距,以使每?jī)蓚€(gè)相鄰的單位字符部分重合。
示例性的,預(yù)設(shè)規(guī)則可包括每?jī)蓚€(gè)相鄰的單位字符之間的間距值為負(fù)值,還可包括間距值為預(yù)設(shè)間距范圍值中的任意一個(gè)數(shù)值。
示例性的,在確定兩個(gè)左右相鄰的單位字符之間的間距時(shí),可按照左側(cè)字符的右邊界的中心橫坐標(biāo)減去右側(cè)字符的左邊界的中心橫坐標(biāo)來(lái)計(jì)算。
本步驟的目的是為了讓每?jī)蓚€(gè)相鄰的單位字符部分重合,增加粘連的部分,以增加計(jì)算機(jī)對(duì)單位字符進(jìn)行分割的難度,從而防止驗(yàn)證碼被暴力破解。
步驟906、根據(jù)經(jīng)過(guò)間距調(diào)整后的全部單位字符生成驗(yàn)證碼圖片。
圖10為本發(fā)明實(shí)施例三提供的一種驗(yàn)證碼圖片示意圖,如圖10所示,每?jī)蓚€(gè)字符之間都存在一定的粘連,大大增加了字符分離的難度,提高驗(yàn)證碼的安全性。
步驟907、根據(jù)目標(biāo)單位字符在所生成的驗(yàn)證碼圖片中的位置信息和驗(yàn)證碼圖片生成驗(yàn)證碼。
本發(fā)明實(shí)施例三在上述實(shí)施例的基礎(chǔ)上,通過(guò)讓每?jī)蓚€(gè)相鄰的單位字符部分重合來(lái)增加各單位字符之間的粘連,進(jìn)一步提高了驗(yàn)證碼的安全性。
在上述實(shí)施例的基礎(chǔ)上,為了進(jìn)一步增加計(jì)算機(jī)的自動(dòng)識(shí)別成本,提升破解難度,可在驗(yàn)證碼圖片中添加干擾線等干擾元素。
實(shí)施例四
圖11為本發(fā)明實(shí)施例四提供的一種驗(yàn)證碼的驗(yàn)證方法的流程示意圖,該方法應(yīng)用于對(duì)采用如本發(fā)明實(shí)施例所述的驗(yàn)證碼的生成方法所生成的驗(yàn)證碼進(jìn)行驗(yàn)證,該方法可以由驗(yàn)證碼的驗(yàn)證裝置執(zhí)行,其中該裝置可由軟件和/或硬件實(shí)現(xiàn),一般可集成在終端中。如圖11所示,該方法包括:
步驟1101、獲取用戶作用于驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼圖片上的點(diǎn)擊操作的點(diǎn)擊位置信息。
示例性的,本實(shí)施例中的終端可包括手機(jī)、平板電腦及筆記本電腦等移動(dòng)終端,也可包括臺(tái)式計(jì)算機(jī)等終端。
進(jìn)一步的,為了讓用戶明確此類驗(yàn)證碼的驗(yàn)證方式,可在進(jìn)行本步驟之前,對(duì)驗(yàn)證方式進(jìn)行提示,所述驗(yàn)證方式為點(diǎn)擊所述驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼圖片中包含的所有倒置的單位字符。例如,可顯示提示信息“請(qǐng)點(diǎn)擊圖中倒立的文字”。
示例性的,對(duì)于包含觸摸屏的終端來(lái)說(shuō),用戶可通過(guò)手指來(lái)點(diǎn)擊驗(yàn)證碼圖片中的某個(gè)位置;對(duì)于臺(tái)式計(jì)算機(jī)或者筆記本電腦等終端來(lái)說(shuō),用戶可通過(guò)鼠標(biāo)來(lái)點(diǎn)擊驗(yàn)證碼圖片中的某個(gè)位置。當(dāng)檢測(cè)到驗(yàn)證碼圖片被點(diǎn)擊時(shí),獲取用戶作用于驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼圖片上的點(diǎn)擊操作的點(diǎn)擊位置信息。
步驟1102、將點(diǎn)擊位置信息與目標(biāo)單位字符在驗(yàn)證碼圖片中的位置信息進(jìn)行匹配,根據(jù)匹配結(jié)果確定驗(yàn)證是否通過(guò)。
示例性的,通過(guò)將點(diǎn)擊位置信息與目標(biāo)單位字符在所述驗(yàn)證碼圖片中的位置信息進(jìn)行匹配,可得知用戶點(diǎn)擊的位置是否為倒置的目標(biāo)單位字符的所在位置,若是,則可說(shuō)明用戶點(diǎn)擊正確,驗(yàn)證通過(guò),終端可繼續(xù)執(zhí)行后續(xù)相關(guān)操作。
具體的,點(diǎn)擊位置信息可包括點(diǎn)擊操作的點(diǎn)擊中心坐標(biāo)。本步驟可包括:根據(jù)目標(biāo)單位字符在所述驗(yàn)證碼圖片中的位置信息確定有效點(diǎn)擊區(qū)域;判斷點(diǎn)擊中心坐標(biāo)是否處于有效點(diǎn)擊區(qū)域內(nèi),若處于,則驗(yàn)證通過(guò);否則,驗(yàn)證失敗。圖12為本發(fā)明實(shí)施例四提供的一種有效點(diǎn)擊區(qū)域示意圖,如圖12所示,驗(yàn)證碼圖片1201中包含倒置的“沒(méi)”字,可根據(jù)“沒(méi)”字在驗(yàn)證碼圖片1201中的位置信息確定有效點(diǎn)擊區(qū)域1202,若用戶的點(diǎn)擊操作的點(diǎn)擊中心坐標(biāo)落入有效點(diǎn)擊區(qū)域1202內(nèi),可說(shuō)明用戶點(diǎn)擊正確,驗(yàn)證通過(guò)。
圖13a為本發(fā)明實(shí)施例四提供的驗(yàn)證碼驗(yàn)證過(guò)程第一示意圖,如圖13a所示,用戶在進(jìn)行社交賬號(hào)注冊(cè)時(shí),在輸入用戶名、手機(jī)號(hào)及密碼后,需要進(jìn)行驗(yàn)證碼的驗(yàn)證,圖中驗(yàn)證碼圖片中的文字上的圓點(diǎn)標(biāo)記用于表示用戶的點(diǎn)擊位置。圖13b為本發(fā)明實(shí)施例四提供的驗(yàn)證碼驗(yàn)證過(guò)程第二示意圖,如圖13b所示,當(dāng)用戶發(fā)現(xiàn)自己點(diǎn)擊的位置不正確時(shí),將鼠標(biāo)(Hover)移動(dòng)到圓點(diǎn)標(biāo)記(實(shí)際使用時(shí)可采用藍(lán)色來(lái)與驗(yàn)證碼圖片中的黑色文字進(jìn)行區(qū)分)上時(shí),標(biāo)記變?yōu)閯h除按鈕,用戶可通過(guò)點(diǎn)擊刪除按鈕(刪除標(biāo)記)來(lái)清除錯(cuò)誤的點(diǎn)擊。圖13c為本發(fā)明實(shí)施例四提供的驗(yàn)證碼驗(yàn)證過(guò)程第三示意圖,如圖13c所示,若用戶對(duì)驗(yàn)證碼圖片中的文字點(diǎn)擊錯(cuò)誤,點(diǎn)擊“加入知乎”按鈕后,驗(yàn)證失敗,此時(shí)會(huì)刷新驗(yàn)證碼(即顯示新的驗(yàn)證碼圖片),顯示報(bào)錯(cuò)信息。
本發(fā)明實(shí)施例四提供的驗(yàn)證碼的驗(yàn)證方法,可使用戶通過(guò)點(diǎn)擊倒置字符的方式來(lái)輕松實(shí)現(xiàn)驗(yàn)證,操作簡(jiǎn)單,可提升用戶體驗(yàn)。
實(shí)施例五
圖14為本發(fā)明實(shí)施例五提供的一種驗(yàn)證碼的生成裝置的結(jié)構(gòu)框圖,其中該裝置可由軟件和/或硬件實(shí)現(xiàn),一般可集成在服務(wù)器等終端中,可通過(guò)執(zhí)行驗(yàn)證碼的生成方法來(lái)生成驗(yàn)證碼。如圖14所示,該裝置包括:?jiǎn)挝蛔址x取模塊1401、目標(biāo)單位字符選取模塊1402、倒置處理模塊1403、驗(yàn)證碼圖片生成模塊1404和驗(yàn)證碼生成模塊1405。
其中,單位字符選取模塊1401,用于從驗(yàn)證碼字符庫(kù)中隨機(jī)選取預(yù)設(shè)數(shù)量的字符,得到待生成的驗(yàn)證碼圖片包含的全部單位字符;目標(biāo)單位字符選取模塊1402,用于從所述全部單位字符中隨機(jī)選取至少一個(gè)字符作為目標(biāo)單位字符;倒置處理模塊1403,用于對(duì)所述目標(biāo)單位字符進(jìn)行倒置處理;驗(yàn)證碼圖片生成模塊1404,用于根據(jù)倒置后的目標(biāo)單位字符和剩余單位字符生成驗(yàn)證碼圖片;驗(yàn)證碼生成模塊1405,用于根據(jù)所述目標(biāo)單位字符在所生成的驗(yàn)證碼圖片中的位置信息和所述驗(yàn)證碼圖片生成驗(yàn)證碼。
本發(fā)明實(shí)施例提供的驗(yàn)證碼的生成裝置所生成的驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼圖片中包含倒置的字符,在保證低制作成本的情況下增加了計(jì)算機(jī)對(duì)各個(gè)字符進(jìn)行拆分的難度,降低驗(yàn)證碼被暴力破解的概率,提高驗(yàn)證碼的安全性;并且,用戶在進(jìn)行驗(yàn)證碼驗(yàn)證時(shí)僅需要通過(guò)點(diǎn)擊倒置字符的方式即可輕松實(shí)現(xiàn)驗(yàn)證,操作簡(jiǎn)單,增強(qiáng)驗(yàn)證碼的易用性,可提升用戶體驗(yàn)。
在上述實(shí)施例的基礎(chǔ)上,所述字符包括中文字符。
在上述實(shí)施例的基礎(chǔ)上,所述驗(yàn)證碼圖片生成模塊包括間距調(diào)整單元和驗(yàn)證碼圖片生成單元。其中,間距調(diào)整單元,用于按照預(yù)設(shè)規(guī)則調(diào)整倒置后的目標(biāo)單位字符和剩余單位字符中的每?jī)蓚€(gè)相鄰的單位字符之間的間距,以使每?jī)蓚€(gè)相鄰的單位字符部分重合;驗(yàn)證碼圖片生成單元,根據(jù)經(jīng)過(guò)間距調(diào)整后的全部單位字符生成驗(yàn)證碼圖片。
在上述實(shí)施例的基礎(chǔ)上,所述倒置處理模塊包括第一旋轉(zhuǎn)單元和第二旋轉(zhuǎn)單元。其中,第一旋轉(zhuǎn)單元,用于將所述全部單位字符中的每個(gè)單位字符旋轉(zhuǎn)第一角度,所述第一角度的取值范圍為大于-60度且小于60度,對(duì)于每個(gè)單位字符,所述第一角度的取值為所述取值范圍內(nèi)的任意一個(gè)數(shù)值;第二旋轉(zhuǎn)單元,用于將旋轉(zhuǎn)第一角度后的目標(biāo)單位字符旋轉(zhuǎn)180度。
在上述實(shí)施例的基礎(chǔ)上,所述位置信息包括字符中心橫坐標(biāo)、字符中心縱坐標(biāo)、字符尺寸和旋轉(zhuǎn)角度。
實(shí)施例六
圖15為本發(fā)明實(shí)施例六提供的一種驗(yàn)證碼的驗(yàn)證裝置的結(jié)構(gòu)框圖,該裝置應(yīng)用于對(duì)采用如本發(fā)明實(shí)施例所述的驗(yàn)證碼的生成方法所生成的驗(yàn)證碼進(jìn)行驗(yàn)證,該裝置可由軟件和/或硬件實(shí)現(xiàn),一般可集成在終端中,可通過(guò)執(zhí)行驗(yàn)證碼的驗(yàn)證方法來(lái)進(jìn)行驗(yàn)證碼的驗(yàn)證。如圖15所示,該裝置包括點(diǎn)擊位置信息獲取模塊1501和驗(yàn)證模塊1502。
其中,點(diǎn)擊位置信息獲取模塊1501,用于獲取用戶作用于所述驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼圖片上的點(diǎn)擊操作的點(diǎn)擊位置信息;驗(yàn)證模塊1502,用于將所述點(diǎn)擊位置信息與目標(biāo)單位字符在所述驗(yàn)證碼圖片中的位置信息進(jìn)行匹配,根據(jù)匹配結(jié)果確定驗(yàn)證是否通過(guò)。
本發(fā)明實(shí)施例提供的驗(yàn)證碼的驗(yàn)證裝置,可使用戶通過(guò)點(diǎn)擊倒置字符的方式來(lái)輕松實(shí)現(xiàn)驗(yàn)證,操作簡(jiǎn)單,可提升用戶體驗(yàn)。
在上述實(shí)施例的基礎(chǔ)上,所述點(diǎn)擊位置信息包括所述點(diǎn)擊操作的點(diǎn)擊中心坐標(biāo)。所述驗(yàn)證模塊包括有效區(qū)域確定單元和驗(yàn)證單元。其中,有效區(qū)域確定單元,用于根據(jù)目標(biāo)單位字符在所述驗(yàn)證碼圖片中的位置信息確定有效點(diǎn)擊區(qū)域。驗(yàn)證單元,用于判斷所述點(diǎn)擊中心坐標(biāo)是否處于所述有效點(diǎn)擊區(qū)域內(nèi),若處于,則驗(yàn)證通過(guò);否則,驗(yàn)證失敗。
在上述實(shí)施例的基礎(chǔ)上,該裝置還可包括提示模塊,用于在獲取用戶作用于所述驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼圖片上的點(diǎn)擊操作的點(diǎn)擊位置信息之前,對(duì)驗(yàn)證方式進(jìn)行提示,所述驗(yàn)證方式為點(diǎn)擊所述驗(yàn)證碼對(duì)應(yīng)的驗(yàn)證碼圖片中包含的所有倒置的單位字符。
上述實(shí)施例中提供的驗(yàn)證碼的生成裝置及驗(yàn)證碼的驗(yàn)證裝置可執(zhí)行本發(fā)明實(shí)施例所提供的相應(yīng)的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在上述實(shí)施例中詳盡描述的技術(shù)細(xì)節(jié),可參見(jiàn)本發(fā)明實(shí)施例所提供的相應(yīng)的驗(yàn)證碼的生成方法及驗(yàn)證碼的驗(yàn)證方法。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過(guò)以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說(shuō)明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。