布衣王子

          Email:roose2008@gmail.com QQ:79212131

          破解圖片驗證

                  相信大家都有在論壇灌水的經歷吧?但是如果你連續發表統一內容的東西在論壇中,不久論壇的整個板塊就全是你發表的信息了,其他信息全被擠在了后面。假設你發表的信息夠多,版主都刪不完時,那么這個論壇基本就報廢了!其他的商業論壇也意識到了防止惡意灌水的重要性,紛紛使用了一些防止惡意灌水的措施,有發貼間隔時間的限制、同一IP地址的發貼數限制、內容不能重復等,但是這些都不是今天的重點,由于論壇使用的是一個公用發貼表單,需要突破唯一的難點是驗證碼。(為了防止某個黑客對某一個特定注冊用戶用特定程序暴力破解方式進行不斷的登陸嘗試或是防止不斷提交某網絡信息而采用的一種網絡通行方式。隨機生成字符信息放入圖片中,防止計算機直接識別。比如招商銀行的網上個人銀行,騰訊的QQ社區等等)   驗證碼分為如下幾類:數字型、字符型、符號型、綜合型。
            一般驗證碼屬于數字型的,不過有的圖片中生成了不少彩色和黑白的噪音點(指驗證圖片上的斑點)。那么我們應該怎么去識別呢?傳統的驗證碼識別方式很簡單,由于數字的位置是固定的,所以我們只需要提取每一幅數字的圖片(沒有噪音點的)然后把每一個特殊數字獨有的象素位置記錄下來,然后在網絡上提取需要破解的特征碼,祛除噪音點,對其位置和記錄位置進行比對,那就是么就能確定相應的數字了。
            總結一下傳統的就是:
            1.先分析驗證碼,前景顏色是否不定
            2.然后把驗證碼的寬度/驗證碼文字個數,比如一驗證碼下載后寬度為60,有4個數字,那么就60/4=15,然后保存每個字,如果只有數字保存0-9數字到位圖文件,如果英文那更麻煩點,0-9,A-Z都要保存到位圖,位圖的前景色都不變,保持一種顏色,背景隨便你改不改
            3.如果前景要變則將文字統一為同種顏色,每個數字0-9的點陣都有個公共點,取該公共點顏色然后把前景全部統一成一種顏色,比如白色{255,255,255},位圖的結構是BGR,而不是RGB
            4.然后進行比較,如果驗證碼的一點為白色,第2步保存的位圖同一點也是白色,那么頻率增加1
            5.最后頻率最高的就是驗證碼了!
            接下來要做的就是做個post程序了,這個太簡單了,代碼你就自己寫吧!不過也要做到如下細節:做成多線程程序進行發貼,不然程序會失去響應的。最好是可以導入大量的代理IP的,然后就是發貼的內容最后加上幾個隨機字符,這樣可以防止重復貼的過濾!最重要的,只是做測試,發貼量不要太多、不要亂發廣告貼!
            其實上述方法已經不是只是對驗證碼進行識別了,完全可以用到現實生活中去,比如說手寫體識別、車牌識別等等,但是現實生活中我們還要進行更多的加工,比如說圓形檢測,多邊形檢測等等。所以說從網絡安全技術中,也有很多東西能造福社會,還等待我們繼續創造!

          posted on 2008-08-06 16:52 草包書生 閱讀(386) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。

          網站導航:
           

          導航

          常用鏈接

          相冊

          java的相關連接

          最新評論

          主站蜘蛛池模板: SHOW| 丹巴县| 水富县| 连城县| 正定县| 黔南| 宣城市| 九龙坡区| 神池县| 淄博市| 五指山市| 台山市| 历史| 武邑县| 闸北区| 铁岭市| 开鲁县| 金寨县| 大同市| 隆子县| 乡城县| 新余市| 怀柔区| 扶风县| 黎川县| 宁夏| 临城县| 广灵县| 巴中市| 宿州市| 兴义市| 宝山区| 彭山县| 奈曼旗| 肇庆市| 古蔺县| 山丹县| 宣化县| 清苑县| 盖州市| 德惠市|