專利名稱:三維動(dòng)態(tài)驗(yàn)證碼的生成方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于涉及計(jì)算機(jī)網(wǎng)絡(luò)安全領(lǐng)域,特別涉及一種三維動(dòng)態(tài)驗(yàn)證碼的生成方法
及裝置。
背景技術(shù):
通過計(jì)算機(jī)網(wǎng)絡(luò)與服務(wù)器交換信息已經(jīng)成為當(dāng)今人們?cè)谏罟ぷ髦凶畛R姷墨@ 取信息服務(wù)的方式。其中有大量網(wǎng)絡(luò)服務(wù)是為個(gè)人用戶提供在線交互服務(wù)的。但是,目前 互聯(lián)網(wǎng)上涌現(xiàn)出大量基于程序的、偽裝成瀏覽者自動(dòng)連接服務(wù)器,進(jìn)而發(fā)動(dòng)近一步入侵的 攻擊行為。例如虛假登錄、修改口令、發(fā)布虛假消息、竊取機(jī)密信息等。 為了確保用戶端所提交的請(qǐng)求是來自于個(gè)人用戶的在線操作,而非惡意軟件自 動(dòng)發(fā)送的數(shù)據(jù),許多學(xué)者開始研究如何讓計(jì)算機(jī)辨別訪問者是人還是計(jì)算機(jī)(Completely Automated Public Turing Test to Tell Computers and H咖ansApart (CAPTCHA)技術(shù)), 以保證當(dāng)前服務(wù)器系統(tǒng)和用戶信息的安全性。圍繞CAPTCHA技術(shù)的研究與運(yùn)用目前以二維 圖形驗(yàn)證碼為主要代表。二維圖形驗(yàn)證碼是由服務(wù)器自動(dòng)生成的一幅含有字符的圖片,這 種圖片中的字符通常在保證人類視覺可辨認(rèn)的前提下,被扭曲或加入一些噪聲,以增加程 序自動(dòng)識(shí)別的難度。在利用二維圖形驗(yàn)證碼進(jìn)行身份認(rèn)證時(shí),服務(wù)器會(huì)要求使用者回答在 這張圖片中顯示了哪些文字或字符,當(dāng)服務(wù)器得到正確回答時(shí),認(rèn)定那個(gè)使用者是人類;而 在多次得到錯(cuò)誤答案的時(shí)候,服務(wù)器則認(rèn)定使用者是程序,而不執(zhí)行后續(xù)操作。圖l為現(xiàn)有 技術(shù)中使用的簡(jiǎn)單二維圖形驗(yàn)證碼的例子?,F(xiàn)有二維圖形驗(yàn)證碼具有簡(jiǎn)單易行的優(yōu)點(diǎn),被 當(dāng)前眾多網(wǎng)站作為主流身份認(rèn)證技術(shù)而采用。但是隨著人工智能和圖像理解技術(shù)的日益成 熟,針對(duì)二維圖形驗(yàn)證碼的攻擊算法不斷出現(xiàn),程序?qū)o態(tài)圖像中的字符識(shí)別率越來越高。 對(duì)于目前的這種靜態(tài)圖片格式驗(yàn)證碼生成方法而言,惡意用戶可以很容易通過機(jī)器程序獲 含有全部字符的整個(gè)驗(yàn)證碼圖片,然后通過字符分割等識(shí)別手段,從背景噪聲中提取出全 部字符,從而能夠破解二維圖形驗(yàn)證碼。于是,在相關(guān)算法設(shè)計(jì)中,設(shè)計(jì)者往往在圖片中加 入大量的干擾信息,使得計(jì)算機(jī)難以識(shí)別圖像中的符號(hào),以提高安全性。然而過度地干擾圖 片中的符號(hào)卻又經(jīng)常使得正常的用戶難以識(shí)別,這使得二維圖形驗(yàn)證碼的安全性和可用性 難以兼顧。圖2是現(xiàn)有技術(shù)中使用的復(fù)雜二維圖形驗(yàn)證碼的例子。
發(fā)明內(nèi)容
本發(fā)明目的在于解決現(xiàn)有技術(shù)不足,提出了生成三維動(dòng)態(tài)驗(yàn)證碼的技術(shù)方案,以求 能夠兼顧驗(yàn)證碼的安全性和可用性,在提高驗(yàn)證碼的抗破解能力的同時(shí)又能易于人眼識(shí)別。
本發(fā)明提供的三維動(dòng)態(tài)驗(yàn)證碼生成方法,生成過程如下
隨機(jī)生成驗(yàn)證碼信息,設(shè)置驗(yàn)證碼信息在屏幕中顯示的位置; 建立一定大小的三維空間,在三維空間中生成三維幾何圖元;所述生成三維幾何 圖元包括設(shè)定三維幾何圖元在三維空間中的位置信息、幾何屬性和運(yùn)動(dòng)軌跡,位置信息包 括三維幾何圖元的三維坐標(biāo),幾何屬性包括三維幾何圖元的亮度、形狀、大小和顏色屬性;
3
根據(jù)三維幾何圖元的位置屬性,判斷三維幾何圖元和驗(yàn)證碼信息在屏幕中顯示的 位置是否相同;若相同則改變?nèi)S幾何圖元的指定改變屬性,若不同則不改變,所述指定改 變屬性為三維幾何圖元的幾何屬性之一; 使三維幾何圖元按照各自的運(yùn)動(dòng)軌跡運(yùn)動(dòng)不停改變其位置信息,從而實(shí)現(xiàn)三維動(dòng) 態(tài)視頻;輸出該視頻并保存為三維動(dòng)態(tài)驗(yàn)證碼。 而且,隨機(jī)生成驗(yàn)證碼信息的具體方式為,從預(yù)先設(shè)置的驗(yàn)證碼內(nèi)容集合中隨機(jī) 選擇指定個(gè)數(shù)的集合元素并組合成為驗(yàn)證碼信息。 而且,驗(yàn)證碼信息在三維動(dòng)態(tài)視頻中采用二維平面圖案顯示,所述設(shè)置驗(yàn)證碼信 息在屏幕中顯示的位置,即設(shè)置驗(yàn)證碼信息在三維空間中顯示的二維屏幕像素坐標(biāo);所述 判斷三維幾何圖元和驗(yàn)證碼信息在屏幕中顯示的位置是否相同,通過將三維幾何圖元的三 維坐標(biāo)映射為二維屏幕像素坐標(biāo),然后比較驗(yàn)證碼信息和三維動(dòng)畫幾何圖元的二維屏幕像 素坐標(biāo)實(shí)現(xiàn)。 本發(fā)明還提供了相應(yīng)的三維動(dòng)態(tài)驗(yàn)證碼生成裝置,包括有三維動(dòng)態(tài)視頻生成模
塊,驗(yàn)證碼信息顯示模塊,幾何圖元判斷模塊和幾何圖元變化模塊, 所述三維動(dòng)態(tài)驗(yàn)證碼生成模塊,用于在三維空間中生成三維幾何圖元; 所述驗(yàn)證碼信息顯示模塊,用于生成驗(yàn)證碼信息并確定驗(yàn)證碼信息在三維空間中
顯示的二維屏幕像素坐標(biāo); 所述幾何圖元判斷模塊,用于判斷三維幾何圖元是否位于驗(yàn)證碼信息在屏幕中顯 示的位置; 所述幾何圖元變化模塊,用于改變?nèi)S幾何圖元的指定改變屬性,以實(shí)現(xiàn)在三維 動(dòng)態(tài)視頻中顯示驗(yàn)證碼的內(nèi)容; 其中,三維動(dòng)態(tài)視頻生成模塊和驗(yàn)證碼信息顯示模塊的輸出接入幾何圖元判斷模 塊,幾何圖元判斷模塊的輸出接入幾何圖元變化模塊,幾何圖元變化模塊的輸出接入三維 動(dòng)態(tài)視頻生成模塊。 本發(fā)明通過幾何圖元的屬性變化來表現(xiàn)出驗(yàn)證碼內(nèi)容,并且每一幀畫面都不泄露 出驗(yàn)證碼的信息,從而使現(xiàn)有的二維靜態(tài)圖像驗(yàn)證碼攻擊方法無法從動(dòng)態(tài)視頻的單幀圖像 中分割出驗(yàn)證碼內(nèi)容,有效提高了驗(yàn)證碼的抗攻擊能力。另外,這種三維動(dòng)態(tài)驗(yàn)證碼可以以 視頻或者gif動(dòng)態(tài)圖片的形式播放給用戶看,讓用戶識(shí)別起來也更加簡(jiǎn)單容易。
圖1為現(xiàn)有技術(shù)中使用的簡(jiǎn)單二維圖形驗(yàn)證碼示例圖; 圖2為現(xiàn)有技術(shù)中使用的復(fù)雜二維圖形驗(yàn)證碼示例圖; 圖3為本發(fā)明實(shí)施例中生成的驗(yàn)證碼元素的01矩陣示例圖; 圖4為本發(fā)明的方法流程示意圖; 圖5為本發(fā)明實(shí)施例的流程示意圖; 圖6為本發(fā)明的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明提供的三維動(dòng)態(tài)驗(yàn)證碼的生成方法,生成 程如下
a.隨機(jī)生成驗(yàn)證碼信息,設(shè)置驗(yàn)證碼信息在三維視頻的屏幕中顯示的位置; b.建立一定大小的三維空間,在三維空間中生成三維幾何圖元;所述生成三維幾
何圖元包括設(shè)定三維幾何圖元的位置屬性、幾何屬性和運(yùn)動(dòng)軌跡,位置屬性包括三維幾何
圖元的三維坐標(biāo),幾何屬性包括三維幾何圖元的亮度、形狀、大小和顏色屬性; c.判斷三維幾何圖元是否位于驗(yàn)證碼在屏幕中顯示的位置,即判斷三維幾何圖元
和驗(yàn)證碼信息在屏幕中顯示的位置是否相同;若是則改變?nèi)S幾何圖元的指定改變屬性,
若不是則不改變,所述指定改變屬性為幾何屬性之一 ; d.使三維幾何圖元按照各自在c步驟中生成時(shí)設(shè)定的運(yùn)動(dòng)軌跡運(yùn)動(dòng),實(shí)現(xiàn)動(dòng)態(tài)的 三維動(dòng)畫,即三維動(dòng)態(tài)視頻;輸出該視頻并保存為三維動(dòng)態(tài)驗(yàn)證碼。 驗(yàn)證碼的內(nèi)容可以是立體三維圖形,也可以是常見的二維平面圖案(一般以字符 為驗(yàn)證碼信息的主要內(nèi)容)。采用立體三維圖形時(shí),需要確定該三維圖形在視頻空間中顯示 的三維坐標(biāo),從而比較驗(yàn)證碼信息的三維坐標(biāo)與三維幾何圖元的三維坐標(biāo),即可判斷三維 動(dòng)畫幾何圖元是否位于驗(yàn)證碼在屏幕中顯示的位置。采用常見的二維平面圖案作為驗(yàn)證碼 信息時(shí),設(shè)置驗(yàn)證碼在屏幕中顯示的二維屏幕像素坐標(biāo)即可確定其在三維空間中的顯示位 置;判斷三維幾何圖元是否位于驗(yàn)證碼在屏幕中顯示的位置,即通過將三維幾何圖元的三 維坐標(biāo)映射為二維屏幕像素坐標(biāo),然后比較驗(yàn)證碼和三維幾何圖元的二維屏幕像素坐標(biāo)實(shí) 現(xiàn)。具體實(shí)施時(shí),也可以不固定驗(yàn)證碼在屏幕中顯示的位置,而是不停細(xì)微的改變驗(yàn)證碼信 息顯示的位置,從而近一步增強(qiáng)安全性。 在視頻中幾何圖元按運(yùn)動(dòng)軌跡變換位置,具體實(shí)施時(shí)中是按視頻的每幀幀進(jìn)行處 理的。針對(duì)每幀中三維幾何圖元的當(dāng)前位置判斷其是否位于驗(yàn)證碼信息在屏幕中顯示的位 置,集合每幀的處理結(jié)果得到完整的含驗(yàn)證碼信息的三維動(dòng)態(tài)視頻。只需本領(lǐng)域技術(shù)人員 設(shè)置循環(huán)計(jì)算機(jī)程序具體實(shí)現(xiàn)步驟b、 c、 d即可。為便于實(shí)施參考,以下提供這種具體實(shí)施 過程對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明,參見圖4,生成過程如下
步驟401 :確定驗(yàn)證碼內(nèi)容集合 驗(yàn)證碼內(nèi)容集合可以隨意選取,可以來自于一個(gè)獨(dú)立的集合,例如全部來自于阿 拉伯?dāng)?shù)字集合;也可以有多個(gè)來源,例如從英文字母集合中選取一部分,從阿拉伯?dāng)?shù)字集合 中選取一部分,再從漢字集合中選取一些元素等,將所有選取的元素放在一個(gè)集合中也就 形成了驗(yàn)證碼內(nèi)容集合。驗(yàn)證碼內(nèi)容集合包含驗(yàn)證碼會(huì)顯示的所有的內(nèi)容,需要易于人眼 辨識(shí)。如果已有指定驗(yàn)證碼內(nèi)容集合,該步驟也可以省去。 步驟402 :隨機(jī)生成驗(yàn)證碼信息通過隨機(jī)從驗(yàn)證碼內(nèi)容集合中選取確定個(gè)數(shù)的 元素構(gòu)成一個(gè)驗(yàn)證碼, 一般預(yù)先確定選取3個(gè)及3個(gè)以上個(gè)數(shù)的元素組成驗(yàn)證碼的內(nèi)容。所 謂屏幕,就是三維動(dòng)畫的顯示范圍,在屏幕顯示范圍內(nèi)確定生成的驗(yàn)證碼信息顯示的二維 屏幕像素坐標(biāo)。 步驟403 :確定一幀內(nèi)的三維幾何圖元信息 在這個(gè)步驟里,設(shè)置視頻一幀中確定大小的三維空間內(nèi)幾何圖元(可簡(jiǎn)稱幾何圖 元)的數(shù)量,設(shè)置幾何圖元各自的位置屬性、幾何屬性和運(yùn)動(dòng)軌跡,其中幾何屬性包括幾何 圖元的形狀、大小、顏色等屬性。位置屬性包括三維幾何圖元的三維坐標(biāo),因?yàn)槿S幾何圖 元由多個(gè)像素點(diǎn)組成,設(shè)定三維幾何圖元的幾何中心點(diǎn)三維坐標(biāo)代表三維幾何圖元的三維 坐標(biāo),并作為位置屬性,同時(shí)將該三維坐標(biāo)映射成相應(yīng)的二位屏幕像素坐標(biāo)。而且在本步驟預(yù)設(shè)幾何圖元的指定改變屬性,具體實(shí)施時(shí)選擇最滿足視頻中驗(yàn)證碼信息展示效果的屬性 作為幾何圖元的指定改變屬性。 第一次進(jìn)入步驟403時(shí),設(shè)置幾何圖元的運(yùn)動(dòng)軌跡和其在第一幀的初始三維坐 標(biāo)。之后處理后續(xù)幀的循環(huán)至步驟403時(shí),就無需重復(fù)設(shè)置運(yùn)動(dòng)軌跡,根據(jù)運(yùn)動(dòng)軌跡以及上 一幀中幾何圖元的三維坐標(biāo),設(shè)置幾何圖元在本幀的三維坐標(biāo),同時(shí)幾何圖元的幾何屬性 和上一幀相同,其指定改變屬性則各幀相同,也無需再重復(fù)設(shè)置。
步驟404 :判斷幾何圖元是否需要改變 在這個(gè)步驟里,將步驟403中已獲取的各幾何圖元的二維屏幕像素坐標(biāo)與步驟 402中生成的驗(yàn)證碼在三維視頻中顯示的二維屏幕像素坐標(biāo)做比較,如果相同,則該幾何圖 元需要改變,進(jìn)入步驟405 ;不同則該幾何圖元不需要改變,進(jìn)入步驟406。
步驟405 :三維幾何圖元改變屬性 預(yù)先指定三維幾何圖元的某種幾何屬性作為指定改變屬性,在這個(gè)步驟里,對(duì)調(diào) 用本步驟的幾何圖元改變其指定改變屬性。實(shí)施時(shí)可以從幾何屬性中指定其一,即亮度、形 狀、大小和顏色等屬性之一,本發(fā)明實(shí)施例是在步驟403指定。進(jìn)行屬性改變后,連續(xù)變化 可以剌激人眼。例如改變亮度,亮度時(shí)變化時(shí)人眼會(huì)看到不同部位的物體的顏色,因此可以 從動(dòng)態(tài)呈現(xiàn)的動(dòng)畫中表現(xiàn)驗(yàn)證碼內(nèi)容。
步驟406 :繪制一幀內(nèi)的三維幾何圖元 上述步驟確定了在視頻的一幀內(nèi)所有幾何圖元的位置屬性和幾何屬性,在此步驟 按確定的屬性繪制一幀的畫面。并進(jìn)入步驟403,循環(huán)處理下一幀動(dòng)畫。循環(huán)對(duì)多幀進(jìn)行處 理后,就能得到使三維幾何圖元按照設(shè)定的運(yùn)動(dòng)軌跡運(yùn)動(dòng)的視覺效果。循環(huán)的次數(shù)也就是 幀數(shù)可以隨意確定,但需要使得三維幾何圖元運(yùn)動(dòng)形成的動(dòng)態(tài)效果滿足人眼辨識(shí)需要,足 以顯示出驗(yàn)證碼的內(nèi)容信息。 步驟407 :將形成的視頻輸出保存為三維動(dòng)態(tài)驗(yàn)證碼 在這個(gè)步驟里,采用一定的文件格式將形成的三維動(dòng)畫效果保存作為三維動(dòng)態(tài)驗(yàn) 證碼,文件的格式可以是AVI等視頻格式,也可以是GIF等動(dòng)態(tài)圖片形式。
參見附圖5,下面再提供一個(gè)實(shí)施例,詳細(xì)描述實(shí)施例的生成過程如下
步驟501 :選擇字符集作為驗(yàn)證碼內(nèi)容集合 在這個(gè)步驟里,實(shí)施例從26個(gè)英文字母和0到9這十個(gè)阿拉伯?dāng)?shù)字中選取了 25 個(gè)字符設(shè)定驗(yàn)證碼內(nèi)容集合為 {A, B, D, E, F, P, Q, R, T, U, V, X, Y, H, J, K, L, M, N, 3, 4, 6, 7, 8, 9}。 之所以選定這些元素,除去容易混淆的字母和數(shù)字,是為了讓用戶更容易分辨出 驗(yàn)證碼字符。比如阿拉伯?dāng)?shù)字0和英文字母0,阿拉伯?dāng)?shù)字2和英文字母Z等等。
步驟502 :隨機(jī)生成一個(gè)字符組合作為驗(yàn)證碼顯示的內(nèi)容 在這個(gè)步驟里,程序從步驟501確定的驗(yàn)證碼內(nèi)容集合中隨機(jī)選取三個(gè)字符,生 成01矩陣。生成01矩陣的形式如圖3所示,該矩陣表示阿拉伯?dāng)?shù)字7。實(shí)施例設(shè)定01矩 陣大小為100行X240列。矩陣中的元素為1的位置區(qū)域即為對(duì)應(yīng)的字符區(qū)域,矩陣中元 素為1的位置連通形成的圖形可以顯示選中的字符,矩陣中字符區(qū)域外的矩陣元素均為O。
實(shí)施例設(shè)定屏幕大小為240像素*100像素,從而驗(yàn)證碼的01矩陣元素位置與 二維屏幕像素位置之間的映射關(guān)系是,如果屏幕像素坐標(biāo)為(i, j),則對(duì)應(yīng)的01矩陣中第(100-j)行第i列的元素位置。通過這種映射關(guān)系,可將生成的驗(yàn)證碼在視頻中顯示的二維 屏幕像素坐標(biāo)確定下來。 步驟503 :確定一幀視頻內(nèi)的方格信息 在這個(gè)步驟里,第一次調(diào)用該步驟時(shí)我們?cè)O(shè)定視頻的一幀中生成一個(gè)由 150*150個(gè)點(diǎn)形成的網(wǎng)格圖形,即22500個(gè)點(diǎn)作為元四邊形的頂點(diǎn)構(gòu)成一個(gè)網(wǎng)格狀的大四 邊形,每個(gè)網(wǎng)格是一個(gè)四邊形,簡(jiǎn)稱為元四邊形。這樣確定了大小和形狀的元四邊形即是一 個(gè)幾何圖元,元四邊形的每個(gè)頂點(diǎn)在空間中的位置用x, y, z坐標(biāo)表示,其中元四邊形頂點(diǎn) 的x、 y值賦予確定值,而z值通過一個(gè)sin函數(shù)賦予,從而設(shè)定了其位置屬性。同時(shí),將元 四邊形各頂點(diǎn)的三維坐標(biāo)映射成二維屏幕像素坐標(biāo)。隨機(jī)對(duì)元四邊形賦予顏色集合中的任 一顏色設(shè)定顏色屬性,顏色集合為{紅,綠,藍(lán)}。同時(shí)實(shí)施例設(shè)定元四邊形的顏色為幾何 圖元的指定改變屬性。 實(shí)施例中設(shè)定元四邊形的運(yùn)動(dòng)軌跡通過設(shè)定網(wǎng)格圖形的整體運(yùn)動(dòng)方式實(shí)現(xiàn)設(shè)定 網(wǎng)格圖形在空間中的運(yùn)動(dòng)軌跡為,在視頻實(shí)現(xiàn)中,每繪制3幀畫面,按照三維空間中x軸方 向循環(huán)替換網(wǎng)格圖形中各頂點(diǎn)的z值,即用相鄰的右邊的頂點(diǎn)的z值替換左邊的頂點(diǎn)的z 值,且最右邊的頂點(diǎn)的z值用最左邊的頂點(diǎn)的z值替換。另外,設(shè)定網(wǎng)格圖形在三維空間中 繞x軸、y軸和z軸隨機(jī)旋轉(zhuǎn)的角度。通過運(yùn)動(dòng)軌跡和旋轉(zhuǎn)角度的確定,最終使得動(dòng)畫中的 各四邊形肉眼看上去是在XY平面運(yùn)動(dòng)且在XY平面上下波動(dòng)的,從而視頻中元四邊形的運(yùn) 動(dòng)軌跡也難以被準(zhǔn)確跟蹤。 在第二次以及后來調(diào)用該步驟時(shí)保持每一幀畫面中元四邊形最初確定的數(shù)量不 變,且元四邊形最初指定的改變屬性和運(yùn)動(dòng)軌跡不變,元四邊形的顏色同上一幀相同。通過 元四邊形的運(yùn)動(dòng)軌跡和上一幀動(dòng)畫中元四邊形的位置信息確定當(dāng)前元四邊形的位置信息。
步驟504 :判斷元四邊形是否需要改變顏色 在這個(gè)步驟里,我們將步驟503中確定的整個(gè)畫面中各頂點(diǎn)的二維屏幕像素坐標(biāo) 同步驟502中確定的驗(yàn)證碼在三維動(dòng)畫中顯示的二維屏幕像素坐標(biāo)進(jìn)行比較,如果相同進(jìn) 入步驟506 ;如果不同,進(jìn)入步驟507。
步驟505 :將元四邊形的顏色變換 在這個(gè)步驟里,將調(diào)用該步驟的頂點(diǎn)的顏色隨機(jī)地改變?yōu)榕c當(dāng)前顏色不同的其他 兩種顏色中的一種。更具體的,若頂點(diǎn)當(dāng)前的顏色為紅色,則將其顏色隨機(jī)變?yōu)辄S色或是綠 色,其他情況類似。元四邊形的顏色是由四個(gè)頂點(diǎn)的顏色綜合而成的,頂點(diǎn)發(fā)生了變化,頂 點(diǎn)構(gòu)成的元四邊形的顏色也會(huì)相應(yīng)的發(fā)生改變。
步驟506 :繪制一幀內(nèi)的網(wǎng)格圖形 在這個(gè)步驟里,按照已經(jīng)確定的元四邊形的位置信息、顏色信息繪制出一幀內(nèi)的 網(wǎng)格圖形。然后進(jìn)入循環(huán),調(diào)用步驟503,重復(fù)調(diào)用該步驟使得在生成的視頻中,顯示出一個(gè) 在空間運(yùn)動(dòng)波動(dòng)的大網(wǎng)格圖形,從而動(dòng)態(tài)的顯示出驗(yàn)證碼的信息。
步驟508 :保存動(dòng)態(tài)的網(wǎng)格為驗(yàn)證碼 將生成的視頻效果錄制一段時(shí)間保存為三維動(dòng)態(tài)驗(yàn)證碼。在本實(shí)施例中,保存此 三維動(dòng)畫為gif圖片格式的形式,可以方便地嵌入到網(wǎng)頁中提供應(yīng)用。 綜上所述,在本發(fā)明實(shí)施例中,首先通過驗(yàn)證碼字符的01矩陣與屏幕像素坐標(biāo)的 關(guān)聯(lián),在屏幕上形成驗(yàn)證碼字符區(qū)域,然后在空間中生成元四邊形組成的網(wǎng)格圖形,網(wǎng)格圖
7形在三維空間中運(yùn)動(dòng)旋轉(zhuǎn),運(yùn)動(dòng)經(jīng)過屏幕中驗(yàn)證碼字符區(qū)域時(shí),就會(huì)隨機(jī)地改變自己當(dāng)前 顏色為其他顏色。這樣,元四邊形的顏色變化就能在屏幕中動(dòng)態(tài)顯現(xiàn)需要用戶識(shí)別的驗(yàn)證 碼字符。而且從實(shí)施例輸出的三維動(dòng)態(tài)驗(yàn)證碼截獲單幀圖像,也無法從中提取出有關(guān)驗(yàn)證 碼內(nèi)容的具體信息,實(shí)現(xiàn)了單幀圖像零知識(shí),能夠防止惡意攻擊者將該動(dòng)態(tài)的驗(yàn)證碼截圖 為靜態(tài)的二維圖形而利用OCR技術(shù)進(jìn)行自動(dòng)識(shí)別驗(yàn)證碼攻擊。并且,從實(shí)施例輸出的三維 動(dòng)態(tài)驗(yàn)證碼是通過元四邊形的顏色變化來顯示出驗(yàn)證碼字符的,這對(duì)于人類視覺識(shí)別而言 沒有任何的障礙。同時(shí)元四邊形的運(yùn)動(dòng)軌跡各不相同,也加大了計(jì)算機(jī)利用對(duì)視頻中運(yùn)動(dòng) 物體的追蹤技術(shù)來破解驗(yàn)證碼的難度。 以上所述,僅為本發(fā)明的較佳實(shí)施例,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā) 明的精神和原則之內(nèi),所作的任何修改,等同替換,改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍 之內(nèi)。 本發(fā)明所提供三維動(dòng)態(tài)驗(yàn)證碼生成方法可以由本領(lǐng)域技術(shù)人員采用計(jì)算機(jī)軟件 技術(shù)實(shí)現(xiàn)自動(dòng)化生成,也可以采用模塊化方式提供應(yīng)用,因此本發(fā)明還提出一種相應(yīng)的三 維動(dòng)態(tài)驗(yàn)證碼生成裝置。如圖6所示,該裝置包括三維動(dòng)態(tài)視頻生成模塊601,驗(yàn)證碼信息 顯示模塊602,幾何圖元判斷模塊603和幾何圖元變化模塊604。 三維動(dòng)態(tài)視頻生成模塊601 ,用于在三維動(dòng)態(tài)視頻中生成幾何圖元,包括設(shè)定幾何 圖元的屬性值集合以及賦予幾何圖元初始位置信息和幾何屬性值,設(shè)定幾何圖元在三維空 間中的運(yùn)動(dòng)軌跡。 驗(yàn)證碼信息顯示模塊602,用于在設(shè)定的三維動(dòng)態(tài)驗(yàn)證碼內(nèi)容集合中隨機(jī)選取指 定個(gè)數(shù)的集合元素作為驗(yàn)證碼信息的顯示內(nèi)容,并確定該驗(yàn)證碼在屏幕中顯示的位置。
幾何圖元判斷模塊603,用于將三維空間中的幾何圖元在屏幕中顯示的位置同驗(yàn) 證碼信息在屏幕中顯示的位置進(jìn)行比較,判斷三維幾何圖元是否位于驗(yàn)證碼在屏幕中顯示 的位置。三維動(dòng)態(tài)視頻生成模塊601的生成結(jié)果和驗(yàn)證碼信息顯示模塊602確定的位置輸 入到幾何圖元判斷模塊603,供其進(jìn)行判斷。 幾何圖元變化模塊604,用于改變?nèi)S幾何圖元的指定改變屬性,以實(shí)現(xiàn)在三維動(dòng) 態(tài)視頻中顯示驗(yàn)證碼的內(nèi)容。幾何圖元判斷模塊603的判斷結(jié)果輸入幾何圖元變化模塊 604。如果幾何圖元判斷模塊輸出的結(jié)果為"是",則重新設(shè)定幾何圖元的屬性,設(shè)定的方式 為從幾何圖元的屬性集里面隨機(jī)選取非當(dāng)前屬性值的其他屬性值。如果判斷模塊輸出的結(jié) 果為"否",則不改變幾何圖元的屬性。
權(quán)利要求
一種三維動(dòng)態(tài)驗(yàn)證碼生成方法,其特征在于生成過程如下,隨機(jī)生成驗(yàn)證碼信息,設(shè)置驗(yàn)證碼信息在屏幕中顯示的位置;建立一定大小的三維空間,在三維空間中生成三維幾何圖元;所述生成三維幾何圖元包括設(shè)定三維動(dòng)畫幾何圖元的位置屬性、幾何屬性和運(yùn)動(dòng)軌跡,位置屬性包括三維幾何圖元的三維坐標(biāo),幾何屬性包括三維幾何圖元的亮度、形狀、大小和顏色屬性;根據(jù)三維幾何圖元的位置屬性,判斷三維幾何圖元和驗(yàn)證碼信息在屏幕中顯示的位置是否相同;若是則改變?nèi)S幾何圖元的指定改變屬性,若不是則不改變,所述指定改變屬性為幾何屬性之一;使三維幾何圖元按照設(shè)定的運(yùn)動(dòng)軌跡運(yùn)動(dòng),實(shí)現(xiàn)三維動(dòng)態(tài)視頻;輸出該視頻并保存為三維動(dòng)態(tài)驗(yàn)證碼。
2. 根據(jù)權(quán)利要求1所述的驗(yàn)證碼信息生成方法,其特征在于隨機(jī)生成驗(yàn)證碼信息的具體方式為,從預(yù)先設(shè)置的驗(yàn)證碼信息內(nèi)容集合中隨機(jī)選擇指定個(gè)數(shù)的集合元素并組合成為驗(yàn)證碼信息。
3. 根據(jù)權(quán)利要求1或2所述的三維動(dòng)態(tài)驗(yàn)證碼生成方法,其特征在于驗(yàn)證碼信息在三維動(dòng)態(tài)視頻中采用二維平面圖案顯示,所述設(shè)置驗(yàn)證碼信息在屏幕中顯示的位置,通過設(shè)置驗(yàn)證碼信息在三維空間中顯示的二維屏幕像素坐標(biāo)實(shí)現(xiàn);所述判斷三維幾何圖元和驗(yàn)證碼信息在屏幕中顯示的位置是否相同,通過將三維幾何圖元的三維坐標(biāo)映射為二維屏幕像素坐標(biāo),然后比較驗(yàn)證碼信息和三維幾何圖元的二維屏幕像素坐標(biāo)實(shí)現(xiàn)。
4. 一種三維動(dòng)態(tài)驗(yàn)證碼生成裝置,其特征在于包括有三維動(dòng)態(tài)視頻生成模塊,驗(yàn)證碼信息顯示模塊,幾何圖元判斷模塊和幾何圖元變化模塊,所述三維動(dòng)態(tài)視頻生成模塊,用于在三維空間中生成三維幾何圖元;所述驗(yàn)證碼信息顯示模塊,用于生成驗(yàn)證碼信息并確定驗(yàn)證碼信息在屏幕中顯示的二維屏幕像素坐標(biāo);所述幾何圖元判斷模塊,用于判斷三維幾何圖元是否位于驗(yàn)證碼信息在屏幕中顯示的位置;所述幾何圖元變化模塊,用于改變?nèi)S幾何圖元的指定改變屬性,以實(shí)現(xiàn)在三維動(dòng)態(tài)視頻中顯示驗(yàn)證碼信息的內(nèi)容;其中,三維動(dòng)態(tài)視頻生成模塊和驗(yàn)證碼信息顯示模塊的輸出接入幾何圖元判斷模塊,幾何圖元判斷模塊的輸出接入幾何圖元變化模塊,幾何圖元變化模塊的輸出接入幾何圖元生成模塊。
全文摘要
本發(fā)明提供三維動(dòng)畫驗(yàn)證碼的生成方法及裝置,技術(shù)方案為隨機(jī)生成驗(yàn)證碼,確定驗(yàn)證碼在屏幕中顯示的位置;生成三維幾何圖元,判斷三維幾何圖元和驗(yàn)證碼信息在屏幕中顯示的位置是否相同;若是則改變?nèi)S幾何圖元的指定改變屬性,若不是則不改變;使三維幾何圖元按照運(yùn)動(dòng)軌跡運(yùn)動(dòng),實(shí)現(xiàn)三維動(dòng)態(tài)驗(yàn)證碼。本發(fā)明通過幾何圖元的屬性變化來表現(xiàn)出驗(yàn)證碼內(nèi)容,并且每一幀畫面都不泄露出驗(yàn)證碼的信息,從而使現(xiàn)有的二維圖像驗(yàn)證碼攻擊手段無法從單幀圖像中分割出驗(yàn)證碼內(nèi)容,同時(shí)由于通過特定的方法設(shè)定各幾何圖元不同的運(yùn)動(dòng)軌跡,從而加大了已有的對(duì)視頻中運(yùn)動(dòng)物體的跟蹤技術(shù)的識(shí)別攻擊難度,最終有效提高了驗(yàn)證碼的抗攻擊能力。
文檔編號(hào)G06T17/00GK101739720SQ20091027330
公開日2010年6月16日 申請(qǐng)日期2009年12月18日 優(yōu)先權(quán)日2009年12月18日
發(fā)明者崔競(jìng)松, 張琳, 張達(dá), 方秦偉, 杜海坤, 梅婧婷, 汪霞 申請(qǐng)人:武漢大學(xué)