新四季網

一種生成圖形驗證碼的方法與流程

2023-06-03 04:54:16

本發明涉及計算機應用技術領域,特別是涉及一種生成圖形驗證碼的方法。



背景技術:

圖形驗證碼在很多軟體中被使用到,主要目的是為了識別正常用戶和確保正常的訪問、瀏覽操作;識別是否為正常和有效訪問、瀏覽操作的主要實現方式是通過要求輸入圖形驗證碼結果來區分。

用戶需要更具軟體提供的驗證碼圖形,理解圖形中的意思後把結果輸入、返回給軟體。

目前很多軟體使用的圖形驗證碼生成的方式方法主要有以下缺陷:圖形驗證碼生成有規律性,容易被掌握後破解;驗證碼的圖形內容變化小,容易被大量收集後做比對破解。



技術實現要素:

針對上述現有技術,本發明目的在於提供一種生成圖形驗證碼的方法,解決現有技術由於使用規律性生成算法和固定圖片大小或固定驗證碼長度所導致的容易被機器學習並破解等技術問題。

為達到上述目的,本發明採用的技術方案如下:

一種生成圖形驗證碼的方法,包括以下步驟:

步驟1、獲得不同種的字符集、字符集字符尺寸集合有屬於圖片尺寸關係且不同像素大小的背景圖片庫、不同種的顏色集,其中字符集字符尺寸集合有屬於圖片尺寸關係且不同像素大小的背景圖片庫,即背景圖片庫中某些圖片的大小至少能大於或等於所有被選出的、預定個數的字符總尺寸;

步驟2、按照預定驗證碼的文字個數,選取種類量小於等於文字個數量的待處理字符集;

步驟3、從背景圖片庫中選取一張圖片作為待處理圖片,再判斷待處理字符集字符尺寸集合與待處理圖片尺寸的大小關係,若待處理圖片具有足夠容納空間,將待處理圖片隨機添加線條後得到背景圖片再進行步驟4,若待處理圖片不具有足夠容納空間,重新進行步驟3,其中,判斷過程即為待處理字符集中預定個數且尺寸相對大的字符組合是否超出圖片尺寸;

步驟4、將待處理字符集中每個字符分別依次進行隨機角度旋轉、局部像素隨機偏移和從顏色集中隨機賦彩,獲得結果字體集,再設置每個結果字體的原點並計算出區域坐標;

步驟5、有序分割背景圖片,得到背景圖片的等分區域,再按序依次設置每個等分區域的原點,然後根據當前結果字體所對應待處理字符集中的字符像素與當前結果字體的區域坐標的差值關係,確定出對應步驟4中每個結果字體原點的參考點,最後相對參考點將每個結果字體依次覆蓋入背景圖片的等分區域,獲得圖形驗證碼。

上述方案中,所述的步驟4,包括

步驟4.1、參照字符的垂直中軸線,作負九十度至正九十度範圍內的隨機角度旋轉;

步驟4.2、再對旋轉後字符的局部像素進行隨機連續偏移;

步驟4.3、從顏色集中隨機選取顏色,使用所述顏色對偏移的字符賦彩,獲得對應步驟4.1中字符的結果字體,若完成所有待處理字符集中字符的步驟4.1-步驟4.3操作,則進行步驟4.4,若還有字符未進行步驟4.1-步驟4.3操作,則跳轉至步驟4.1;

步驟4.4、獲得對應待處理字符集的結果字體集。

上述方案中,所述的步驟5,包括

步驟5.1、將背景圖片沿一個方向等分為e份矩形,記為e1,e2…en…ee,n為1至字符數的正整數,e為大於或等於字符數的正整數;

步驟5.2、相對矩形en中心設置其左上角頂點原點,在原點至坐標(待處理字符集中第n個字符寬度像素-第n個結果字體區域坐標橫軸量,待處理字符集中第n個字符高度像素-第n個結果字體區域坐標豎軸量)所定義的矩形中,任意去掉一點作為對應步驟4中每個結果字體原點的參考點,將第n個結果字體以rgb顏色作像素覆蓋入背景圖片的矩形en;

步驟5.3、若n大於或等於字符數,則保存並獲得圖形驗證碼,若n小於字符數,則加1後返回至步驟5.2。

與現有技術相比,本發明的有益效果:

準備多個字符集,計算多個字符集中的每個字符集使得其具有隨機的大小和顏色,通過本發明字符旋轉和局部像素少量水平或垂直位移的隨機處理算法,生成多種隨機條件的疊加組合,特別是生成的背景圖片和字符顏色相近時,不僅使得文字不具規律性並且抵禦圖片識別軟體性能極強,抗機器學習性能顯著增強;本發明準備多種大小不一的背景圖片,使得最終生成的圖片大小不恆定,即驗證碼數量也不確定,對機器學習造成圖像邊界難以定義的問題以致其不能發現本發明的生成規律。

附圖說明

圖1為本發明主要步驟示意圖。

具體實施方式

本說明書中公開的所有特徵,或公開的所有方法或過程中的步驟,除了互相排斥的特徵和/或步驟以外,均可以以任何方式組合。

下面結合附圖對本發明做進一步說明:

實施例1

本發明公開一種生成圖形驗證碼的方法,

s1.準備n種字符集{n1},每種字符集的字符的高度和寬度分別為hn、wn;

s2.準備m張像素大小不同的圖片作為背景圖片;

s3.準備o種顏色,其集合為{o1};

s4.每次生成包含f個文字的驗證碼時,從{n1}字符集種選取x種字符集,其中x(0<x≤f),其集合為{c},{c}集合中的字符高和寬的集合分別為{hxc}、{wxc};

s5.從m張圖片中選取一張圖片作為驗證碼背景圖,圖片的垂直高不低於{c}集合中的最大值max(hxc),寬度不能低於和∑(wxc),選取圖片記為m1;

s6.在驗證碼背景圖m1隨機添加線條,形成背景圖m2;

s7.依次從{c}集合中隨機選取一個字符,逐一做s8-s10的重複處理操作;

s8.對s4步驟中選取的字符,以字符垂直中軸線做-90度~90度範圍內的角度旋轉;

s9.對s8步驟的結果字體做局部像素隨機水平或垂直連續偏移;隨機偏移範圍,不超過3個像素。

s10.從集合{o1}隨機選取顏色of,顏色of作為s9步驟跳出後結果字體的字體顏色;

s11.以文字左上角為原點,坐標為(0,0),水平方向為x軸,豎直方向為y軸,計算出文字的所在最小長方形的右下角坐標為(xc,yc)

s12.所有字符完成s8-s10步驟後的集合為{c2};

s13.把背景圖m2水平方向平均分成e份,集合為e1,e2…en…ee;

s14.把集合{c2}中的字符逐一放置到en中,具體方法:xn的長和寬分別為w像素、h像素,以en的左上角的點為原點,在左上角坐標(0,0)~(w-xc,h-yc)的長方形中任意取一點作為c2集合字體的左上角的點,把字符以rgb顏色做像素覆蓋到背景圖片中;

s15.保存圖片。

作為優選,所述一種生成圖形驗證碼的方法,生成的圖片大小不恆定。

作為優選,所述一種生成圖形驗證碼的方法,圖片中的文字的形狀、位置、水平角度和顏色都是隨機的。

作為優選,所述一種生成圖形驗證碼的方法,為保證內容識別性,處理過的文字會完全的現實在圖片中。偏移不超過3個像素範圍,使得字體變形但不超過背景圖片範圍。

作為優選,所述一種生成圖形驗證碼的方法,將文字隨機角度的旋轉。

作為優選,所述一種生成圖形驗證碼的方法,將文字局部隨機做偏移。

本發明的核心思想是:準備需要使用的不同背景、不同大小的圖片,選取過程中考慮字符的高度和寬度,確保文字能正常顯示在背景圖片中;準備多種字符集為{n1},生成f個字符組成的驗證碼,從集合{n1}中選取x種字符集作為備選,0<x≤f,f∈{n1},確保驗證碼的字符集有隨機性;準備o種顏色,每個字符的顏色從o種字符中隨機選取;字符在-90度~90度範圍內做隨機旋轉;將字符在水平和垂直方向上做像素局部連續偏移;最終隨機放置在背景圖片中;上述所有步驟的疊加增加機器識別的難度。

實施例2

圖1是發明具體實施方式中生成圖形驗證碼的流程圖。如圖1所示,該生成圖形驗證碼的流程包括以下步驟:

步驟101:開始,需要生成一個包含f個字符的圖形驗證碼;

步驟102:準備多種字符集,包括多種不同的字體,例如:arial、tahoma、宋體、黑體等;從字符集種選取多種種字符集,其中1<x≤f;

步驟103:從多種字符集中隨機選取f個字符;

步驟104:根據選取的字符字體大小和驗證碼選取背景圖片,作為畫布;

步驟105:在畫布中隨機寫入一些粗細不規的曲線,作為圖片噪音;

步驟106:將選取的字符逐一隨機做-90度~90度的旋轉;

步驟107:將旋轉後的字符逐一隨機移動局部像素,使字符局部扭曲;

步驟108:再逐一給字符隨機選擇顏色;

步驟109:最後把字符像素以rgb值覆蓋到背景圖片中,形成最終的驗證碼圖片;

步驟110:保存圖片。

作為優選,所述一種生成圖形驗證碼的方法,生成的圖片大小不恆定。

作為優選,所述一種生成圖形驗證碼的方法,圖片中的文字的形狀、位置、水平角度和顏色都是隨機的。

作為優選,所述一種生成圖形驗證碼的方法,為保證內容識別性,處理過的文字會完全的現實在圖片中。

作為優選,所述一種生成圖形驗證碼的方法,將文字隨機角度的旋轉。

作為優選,所述一種生成圖形驗證碼的方法,將文字局部隨機做偏移。

以上所述,僅為本發明的具體實施方式,但本發明的保護範圍並不局限於此,任何屬於本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀