、旋轉(zhuǎn)角度等)。用戶終端100、web服務(wù)器301、驗(yàn)證碼服務(wù)器302、驗(yàn)證碼服務(wù)器302以及素材存儲(chǔ)服務(wù)器303位于無(wú)線或有線網(wǎng)絡(luò)中,通過(guò)該無(wú)線或有線網(wǎng)絡(luò),用戶終端100以及各服務(wù)器相互通信。
[0055]需要說(shuō)明的是,本發(fā)明實(shí)施例中服務(wù)器的數(shù)量以及功能的設(shè)置可以根據(jù)具體的實(shí)施場(chǎng)景以及實(shí)施條件進(jìn)行變化,這樣的變化并不影響本發(fā)明的保護(hù)范圍。
[0056]下面將結(jié)合附圖,對(duì)本發(fā)明實(shí)施例提供的身份驗(yàn)證方法、裝置、系統(tǒng)進(jìn)行詳細(xì)的介紹。
[0057]第一實(shí)施例
[0058]請(qǐng)參閱圖6,所示為本發(fā)明第一實(shí)施例提供的一種身份驗(yàn)證方法的流程圖。結(jié)合圖2,本實(shí)施例描述的是服務(wù)器的處理流程,本實(shí)施例提供的身份驗(yàn)證方法包括以下步驟:
[0059]步驟S11,服務(wù)器接收用戶終端發(fā)送的驗(yàn)證碼拉取請(qǐng)求。
[0060]當(dāng)用戶終端100中的瀏覽器或各種應(yīng)用的客戶端監(jiān)測(cè)到用戶進(jìn)行發(fā)起交易等需要驗(yàn)證身份的敏感操作、或者在某時(shí)間段內(nèi)登陸某應(yīng)用次數(shù)過(guò)多、或者異地登陸某應(yīng)用、或者登陸某應(yīng)用密碼輸入錯(cuò)誤次數(shù)過(guò)多等情況發(fā)生時(shí),可以判定身份驗(yàn)證請(qǐng)求被觸發(fā),用戶終端100可以向服務(wù)器200發(fā)送驗(yàn)證碼拉取請(qǐng)求。
[0061]例如,用戶終端100可以向預(yù)先配置的服務(wù)器200,例如可以為一個(gè)網(wǎng)頁(yè)地址,發(fā)送驗(yàn)證碼拉取請(qǐng)求,以獲取驗(yàn)證碼。具體的,驗(yàn)證碼拉取請(qǐng)求中可以攜帶有頁(yè)面標(biāo)識(shí)(checkcode),頁(yè)面標(biāo)識(shí)用于標(biāo)識(shí)一個(gè)唯一的頁(yè)面,例如可以是一個(gè)數(shù)字,每次刷新頁(yè)面時(shí)頁(yè)面標(biāo)識(shí)都會(huì)變化,與驗(yàn)證碼拉取請(qǐng)求具有對(duì)應(yīng)關(guān)系。
[0062]步驟S12,根據(jù)所述驗(yàn)證碼拉取請(qǐng)求,隨機(jī)選取一個(gè)驗(yàn)證碼背景圖片,獲取與所述驗(yàn)證碼背景圖片對(duì)應(yīng)的多個(gè)子圖片、第一拼接規(guī)則以及第二拼接規(guī)則,所述驗(yàn)證碼背景圖片中包括與所述多個(gè)子圖片分別對(duì)應(yīng)的多個(gè)空缺區(qū)域,所述第一拼接規(guī)則中包括:所述多個(gè)子圖片與隨機(jī)生成的多個(gè)旋轉(zhuǎn)角度以及所述多個(gè)空缺區(qū)域之間的配置關(guān)系,所述第二拼接規(guī)則中包括:與每個(gè)所述子圖片對(duì)應(yīng)的預(yù)定位置以及預(yù)定旋轉(zhuǎn)角度。
[0063]服務(wù)器200在接收到用戶終端100發(fā)送的驗(yàn)證碼拉取請(qǐng)求后,可以從驗(yàn)證碼數(shù)據(jù)庫(kù)中隨機(jī)選取一個(gè)驗(yàn)證碼背景圖片以及與所選取的驗(yàn)證碼背景圖片對(duì)應(yīng)的子圖片。
[0064]驗(yàn)證碼數(shù)據(jù)庫(kù)中存放有驗(yàn)證碼背景圖片以及子圖片。每個(gè)驗(yàn)證碼背景圖片都有與其對(duì)應(yīng)的多個(gè)子圖片(大于或等于兩個(gè)),每個(gè)驗(yàn)證碼背景圖片中都具有與多個(gè)子圖片對(duì)應(yīng)的多個(gè)空缺區(qū)域,當(dāng)多個(gè)子圖片按照預(yù)定位置以及預(yù)定旋轉(zhuǎn)角度拼接在驗(yàn)證碼背景圖片的多個(gè)空缺區(qū)域時(shí),可以構(gòu)成一個(gè)完整的圖片。
[0065]請(qǐng)參照?qǐng)D7,驗(yàn)證碼背景圖片以及子圖片的生成過(guò)程可以包括以下步驟:
[0066]步驟S101,選取圖片數(shù)據(jù)庫(kù)中的圖片。
[0067]圖片數(shù)據(jù)庫(kù)可以事先建立好,存儲(chǔ)在服務(wù)器200中。本發(fā)明實(shí)施例中,驗(yàn)證碼背景圖片的具體內(nèi)容不需要具有很強(qiáng)的類(lèi)別辨識(shí)度,可以直接使用風(fēng)景、動(dòng)物、建筑等內(nèi)容的圖片。圖片數(shù)據(jù)庫(kù)中的圖片可以由服務(wù)器200直接由互聯(lián)網(wǎng)上抓取,互聯(lián)網(wǎng)上資源非常豐富,因此,圖片數(shù)據(jù)庫(kù)的圖片數(shù)量很容易達(dá)到一定的規(guī)模,從而可以增加人工收集圖片作為破解題庫(kù)的難度,防止人工破解。
[0068]另外,圖片數(shù)據(jù)庫(kù)中的圖片也可以是由廣告圖片發(fā)布服務(wù)器上獲取的廣告圖片,由此,當(dāng)用戶按照預(yù)定位置以及預(yù)定旋轉(zhuǎn)角度將子圖片拼接在驗(yàn)證碼背景圖片的空缺區(qū)域時(shí),可以看到一個(gè)完整的廣告圖片,從而可以利用驗(yàn)證碼來(lái)進(jìn)行產(chǎn)品推廣等服務(wù)。
[0069]步驟S102,由所述圖片切割所述多個(gè)子圖片,所述圖片被切割多個(gè)子圖片后剩余的部分形成所述驗(yàn)證碼背景圖片,所述驗(yàn)證碼背景圖片中被切割的多個(gè)區(qū)域形成所述多個(gè)空缺區(qū)域。
[0070]如圖8所示,所述多張子圖片優(yōu)選的具有相同大小和形狀,這樣可以方便配置相應(yīng)的拼接規(guī)則,也可以防止機(jī)器依據(jù)子圖片的大小和形狀進(jìn)行破解。
[0071]切割圖片可以從圖片的任意位置開(kāi)始,切割的形狀可以包括圓形、方形、多邊形等具有多個(gè)對(duì)稱(chēng)軸的形狀,這樣不容易被機(jī)器或人工惡意破解。
[0072]步驟S103,保存所述驗(yàn)證碼背景圖片、與所述驗(yàn)證碼背景圖片對(duì)應(yīng)的所述多個(gè)子圖片以及與每個(gè)所述子圖片對(duì)應(yīng)的預(yù)定位置。
[0073]其中,與所述子圖片對(duì)應(yīng)的預(yù)定位置為與所述子圖片對(duì)應(yīng)的空缺區(qū)域在所述驗(yàn)證碼背景圖片中的位置,或者與所述子圖片對(duì)應(yīng)的空缺區(qū)域在所述驗(yàn)證碼背景圖片中的位置之間的誤差在預(yù)定范圍內(nèi)。這里所說(shuō)的與所述子圖片對(duì)應(yīng)的空缺區(qū)域,指的是因切割該子圖片所形成的空缺區(qū)域。例如,由圖片P中切割出子圖片P1,被切割的區(qū)域就形成與子圖片P1對(duì)應(yīng)的空缺區(qū)域。與所述子圖片對(duì)應(yīng)的預(yù)定位置,也就是該子圖片在所述驗(yàn)證碼背景圖片中的預(yù)定位置。
[0074]具體的,在一種【具體實(shí)施方式】中,所述子圖片在所述驗(yàn)證碼背景圖片中的預(yù)定位置可以與該子圖片對(duì)應(yīng)的空缺區(qū)域在所述驗(yàn)證碼背景圖片中的位置相一致。
[0075]在另一種【具體實(shí)施方式】中,所述子圖片在所述驗(yàn)證碼背景圖片中的預(yù)定位置可以是與該子圖片對(duì)應(yīng)的空缺區(qū)域在所述驗(yàn)證碼背景圖片中的位置之間的誤差在預(yù)定范圍內(nèi)的位置。也就是說(shuō),與所述子圖片對(duì)應(yīng)的預(yù)定位置與所述子圖片對(duì)應(yīng)的空缺區(qū)域所在的位置之間允許一定的誤差,其誤差范圍例如可以、但不限于為5%。以子圖片對(duì)應(yīng)的預(yù)定位置代替子圖片的編號(hào),可以提高破解的門(mén)檻,因?yàn)樵谝粋€(gè)驗(yàn)證碼中,子圖片的數(shù)量是有限的,也就是編號(hào)是有限的,但是,子圖片在驗(yàn)證碼背景圖片中的位置的可能性是很多的,以一張分辨率為400*500的圖片為例,如果允許的誤差為5%,就有19W種可能,因此可以大幅度提高抗破解能力。
[0076]請(qǐng)參照?qǐng)D9,所述隨機(jī)選取一個(gè)驗(yàn)證碼背景圖片,獲取與所述驗(yàn)證碼背景圖片對(duì)應(yīng)的多個(gè)子圖片、第一拼接規(guī)則以及第二拼接規(guī)則的步驟,可以包括以下步驟:
[0077]步驟S121,隨機(jī)選取一個(gè)驗(yàn)證碼背景圖片。
[0078]步驟S122,獲取與所選取的驗(yàn)證碼背景圖片對(duì)應(yīng)的多個(gè)子圖片。
[0079]步驟S123,根據(jù)所述子圖片的形狀,隨機(jī)生成多個(gè)旋轉(zhuǎn)角度,將所述驗(yàn)證碼背景圖片中的多個(gè)空缺區(qū)域以及隨機(jī)生成的多個(gè)旋轉(zhuǎn)角度隨機(jī)配置給所述多個(gè)子圖片,每個(gè)所述子圖片均配置有一個(gè)所述空缺區(qū)域以及一個(gè)隨機(jī)生成的旋轉(zhuǎn)角度。
[0080]不同形狀的子圖片,其旋轉(zhuǎn)角度的可選范圍也是不同的,假設(shè)子圖片時(shí)圓形的,則隨機(jī)生成的旋轉(zhuǎn)角度可以是任意角度,因?yàn)闊o(wú)論是多少角度,圓形的子圖片都可以被拼接在圓形的空缺區(qū)域中。如果子圖片是正方形的,則隨機(jī)生成的旋轉(zhuǎn)角度可以是0度、90度、180度、270度的倍數(shù),這樣可以保證方形的子圖片可以被拼接在方形的空缺區(qū)域中,等等,以此類(lèi)推,所生成多個(gè)旋轉(zhuǎn)角度只要能夠保證子圖片可以被拼接在空缺區(qū)域而不留空白即可。
[0081]步驟S124,保存所述多個(gè)子圖片與所述多個(gè)空缺區(qū)域以及隨機(jī)生成的多個(gè)旋轉(zhuǎn)角度之間的配置關(guān)系,作為所述第一拼接規(guī)則。
[0082]步驟S125,根據(jù)所述第一拼接規(guī)則中每個(gè)所述子圖片所配置的旋轉(zhuǎn)角度,計(jì)算與每個(gè)所述子圖片對(duì)應(yīng)的所述預(yù)定旋轉(zhuǎn)角度。
[0083]步驟S126,保存每個(gè)所述子圖片與所述預(yù)定旋轉(zhuǎn)角度以及預(yù)定位置之間的對(duì)應(yīng)關(guān)系,作為所述第二拼接規(guī)則。
[0084]將子圖片進(jìn)行隨機(jī)角度的旋轉(zhuǎn)可以進(jìn)一步增加破解難度。以現(xiàn)有的計(jì)算機(jī)發(fā)展水平,直接辨認(rèn)出圖片的目標(biāo)位置和角度是比較困難的,破解難度與可選空缺區(qū)域的個(gè)數(shù)a和子圖片的旋轉(zhuǎn)角度b相關(guān),破解難度=l/(a ! *ba)。由于切割圖片的位置和角度都是隨機(jī)的,想通過(guò)人工收集驗(yàn)證碼背景圖片以及子圖片的位置和角度作為破解題庫(kù)是非常困難的,因此具有很強(qiáng)的抗破解能力。
[0085]根據(jù)子圖片所旋轉(zhuǎn)的角度可以計(jì)算出與子圖片對(duì)應(yīng)的預(yù)定旋轉(zhuǎn)角度。假設(shè)子圖片為圓形圖片,被旋轉(zhuǎn)了 50度,只有當(dāng)其被反方向旋轉(zhuǎn)50度或者再旋轉(zhuǎn)310度才可以將子圖片正確的拼接在驗(yàn)證碼背景圖片中。也就是說(shuō),假設(shè)某子圖片在生成時(shí)被旋轉(zhuǎn)了 X度,其預(yù)定旋轉(zhuǎn)角度可以為(-x±n*360)度或者(360-x±n*360)度,其中,η為自然數(shù)。
[0086]步驟S13,根據(jù)所述第一拼接規(guī)則中每個(gè)所述子圖片所配置的空缺區(qū)域以及旋轉(zhuǎn)角度,將所述多個(gè)子圖片拼接在所述多個(gè)空缺區(qū)域中。
[0087]請(qǐng)參照?qǐng)D10,由于所述空缺區(qū)域的數(shù)量等于所述子圖片的數(shù)量,而且所述多張子圖片具有相同大小和形狀,因此,當(dāng)所述多個(gè)子圖片被拼接在多個(gè)空缺區(qū)域中時(shí),多個(gè)子圖片可以填充驗(yàn)證碼背景圖片中多個(gè)空缺區(qū)域的空白。相較于服務(wù)器直接向用戶終端下發(fā)包含空缺區(qū)域的驗(yàn)證碼背景圖片以及子圖片的方法,可以有效的避免人工或機(jī)器通過(guò)邊緣相似度技術(shù)(一種通過(guò)比較兩個(gè)圖片邊緣上各個(gè)邊緣點(diǎn)的相似情況,將邊緣相同或相似的圖片自動(dòng)進(jìn)行匹配的計(jì)算機(jī)程序)識(shí)別匹配正確的選項(xiàng),因此安全性更高。
[0088]另外,由于第一拼接規(guī)則中每個(gè)子圖片所配置的空缺區(qū)域以及旋轉(zhuǎn)角度都是隨機(jī)配置的,也就是說(shuō)與所述驗(yàn)證碼背景圖片對(duì)應(yīng)的多個(gè)子圖片是打亂順序并且經(jīng)過(guò)旋轉(zhuǎn)后拼接在驗(yàn)證碼背景圖片的空缺區(qū)域中的,因此,一方面大大增加了人工或機(jī)器收集圖片作為破解題庫(kù)的難度,另一方面用戶仍然能夠根據(jù)理解很容易分辨出需要調(diào)整位置和角度的子圖片,不影響用戶體驗(yàn)。而且同樣的驗(yàn)證碼背景圖片以及子圖片只要對(duì)應(yīng)的第一拼接規(guī)則不同就可以形成不同的驗(yàn)證碼,也可以減少獲取大量圖片資源所帶來(lái)的負(fù)擔(dān)。
[0089]進(jìn)一步的,在本實(shí)施例的另一種【具體實(shí)施方式】中,在步驟S122獲取到與所選取的驗(yàn)證碼背景圖片對(duì)應(yīng)的多個(gè)子圖片后,還可以對(duì)多個(gè)子圖片的邊緣進(jìn)行改色、圖像模糊等處理,使得多個(gè)邊緣子圖片的邊緣與原本的邊緣在內(nèi)容(包括顏色、紋理等)上具有較大的差別,可以更進(jìn)一步的破壞子圖片與驗(yàn)證碼背景圖片在內(nèi)容(包括顏色、紋理等)上的連續(xù)性。具體的,可以對(duì)子