複雜背景的驗證碼破解

2021-05-22 18:26:51 字數 937 閱讀 2636

首先我們要去除它的背景,對於這樣稍微複雜的背景,用過去的方法很難做到,上圖的例子還不是很明顯,我發現很多背景色和字母色近似,而且字母顏色是不斷變化的,背景也是不斷變化的

那我初始的想法是找到中使用顏色最多的方法,於是我們用hsl表示各點顏色,接著進行統計,得到最大的幾個峰值,這裡便是中幾個最豐富的顏色的l值得累加值

其餘的都可以認為是噪音,我們對每個峰值進行分割,得到如下

你看這樣就把單個顏色分割出來了,接下來就是找到中除去黑色和白色後的

然後進行灰化處理,閥值處理,降噪,得到

接著根據邊界檢測出來的最左側x位置,來排序字母順序

接下來的事情就輕車熟路了,把轉成標準模板,通過少量學習就達到了95%以上的識別率

c:15 j:8 8:7 t:9 9:4 x:7 4:6 2:4 h:7 f:8 e:18 b:5 y:3 k:4 w:3 g:5 3:5 7:6 r:2 m:3 q:4 v:2 p:3 6:2

以上資料表示 c學習15次 j學習8次…

只要字元不粘連,大部分驗證碼干擾技術都是可以有辦法,所以為什麼google驗證碼看起來很簡單,但是沒有人能夠很好的破解它得原因。

cy3e 這個3字中有雜點,其他沒有,按照文章中介紹的辦法,怎麼知道這個3不是像其他顏色雜點一樣的呢?

我覺得需要加入乙個步驟,就是對每次過濾顏色生成出來的,進行填充

找到3的雜點原圖:

然後我們進行演算法填充

至於字元傾斜的問題,我覺得完全可以在機器學習過程中,我們自己旋轉正在學習的一定角度,例如從-10到+10度,只不過這樣的學習庫會大一些,但是就10個數字的驗證碼來說,這點效能損失應該可以忽略不計。

原文http://www.seoo.org/2008/07/06/%e5%a4%8d%e6%9d%82%e8%83%8c%e6%99%af%e7%9a%84%e9%aa%8c%e8%af%81%e7%a0%81%e7%a0%b4%e8%a7%a3.html

驗證碼破解

驗證碼的功能一般是防止使用程式惡意註冊 暴力破解或批量發帖而設定的。所謂驗證碼,就是將一串隨機產生的數字或符號,生成一幅,裡加上一些干擾象素 防止ocr 由使用者肉眼識別其中的驗證碼資訊,輸入表單提交 驗證,驗證成功後才能使用某項功能。學習驗證碼的破解 識別技術,不僅可以知道驗證碼的原理,而且可以讓...

驗證碼破解

目錄1xx 訊息,一般是告訴客戶端,請求已經收到了,正在處理,別急.2xx 處理成功,一般表示 請求收悉 我明白你要的 請求已受理 已經處理完成等資訊.3xx 重定向到其它地方。它讓客戶端再發起乙個請求以完成整個處理。4xx 處理發生錯誤,責任在客戶端,如客戶端的請求乙個不存在的資源,客戶端未被授權...

驗證碼破解的辦法,簡單驗證碼破解演示

人世間,比芳華再可名貴的器材其實沒有,然而芳華也最輕易消失 誰能對峙得永遠的芳華的,便是巨大的人。對於錯雜的驗證碼,地位隨機 扭曲 模糊 干擾項 gif驗證碼 漢字等。無聊,對於道德家來說是乙個嚴重的題目,因為人類的罪惡折半以上都是源於對它的膽怯。對於錯雜靠山的,然則字型是同一色彩的,我們可以統計每...