验证码破解的办法,简单验证码破解演示

来源:互联网 发布:mac版word的选项在哪 编辑:程序博客网 时间:2024/06/05 15:46

人世间,比芳华再可名贵的器材其实没有,然而芳华也最轻易消失……谁能对峙得永远的芳华的,便是巨大的人。对于错杂的验证码,地位随机、扭曲、模糊、干扰项、gif验证码、汉字等。。。。

无聊,对于道德家来说是一个严重的题目,因为人类的罪恶折半以上都是源于对它的胆怯。 

对于错杂靠山的,然则字体是同一色彩的,我们可以统计每个像素点的值,然后统计出峰值的4个,之后把峰值之外的点全部转为白色,峰值的4种色转为黑色。(具体景象具体定)

 

大项目组验证码都是可以用曲直短长的办法把底纹给去掉的,比如,这个大师常见的效验码,去了底纹之后的结果为上图,可以看到还是有一些干扰点,我们可以用代码把这些孤立的干扰点去掉(去的力度可以本身断定),去了干扰点的结果为上图,接下来这些字符都是很规整的字符了

  

看上图优化后的目标,这两个6是一样的,加上一些抵偿,提取到模板,接下来就很轻易破解了,可以看到左图的M有些模糊了,其实能达到90%的概率就可以了

 

 

若是碰到gif类型的效验码,忘怀哪个网站了,然则我断定我见过,这种校验码其实也类似,关键就是从gif中提取到效验码图片,我们可以提取帧数最长的一张,取到之掉队程就也一样了,去除干扰,提取模板或者进修,比对破解

 

 

因为生成图片对办事器来说是个“体力活”,并且效验码的接见量是很大的,并且有很多时辰因为用户网速等原因会不绝的恳求效验码刷新,所以很多看起来很牛的效验码其实是固定生成好的,比如天天0点生成N个,然后供第二天应用,这类效验码就是天天不绝的人工输入,然后供当天应用,听起来很雷,然则国内确切有如许的做法。

还有种更雷的做法,把效验码提取然后经由过程法度集中的公布出去,让一些想赚钱的人来输入,1分钱一张(或者更低)宁神,必然有人愿意做的。。。

 

 获取到去了噪点的图片之后(有些须要做抵偿)找出模板,因为固定的地位直接去固定地位的图片即可

这里仅供给一种验证码破解的标准示例,共大师研究进修

这种做法仅对规矩的效验码有效,错杂的效验码无效,然则总体的步调是一致的。

 

经由过程这组验证码大师会看到一些规律,1。这种验证码字体很规矩,2。每位数字的地位都是固定的。我们称之为标准效验码,所有的干扰项也就是靠山色彩有不合的深灰色干扰纹。字体没有任何的扭曲、地位变换。

 

思路:截取每个地位上的10位数字图片,然后将图片都曲直短长化,然后用模板进行比对。

图片曲直短长化道理:

获取到R、G、B的&#20540;,然后按照曲直短长化的公式R*R &#43;G*G &#43;B*B < 3*128*128为黑色,不然为白色,这种办法对于绝大多半是有效的。

还有一种是按照灰度图,然后在按照灰度来断定是黑还是白。

像素点灰度的公式:

1.浮点算法:Gray=R*0.3&#43;G*0.59&#43;B*0.11

  2.整数办法:Gray=(R*30&#43;G*59&#43;B*11)/100

  3.移位办法:Gray =(R*28&#43;G*151&#43;B*77)>>8;

  4.均匀&#20540;法:Gray=(R&#43;G&#43;B)/3;

5.仅取绿色:Gray=G;

参考:http://baike.baidu.com/view/1184366.html

可以按照须要做出微调

 

 

本例采取曲直短长化公式来曲直短长化。

  1. /** 
  2.      * 将一个像素点转为白色或者黑色。 
  3.      *  
  4.      * @param pixel 
  5.      * @return 转换后的像素点(黑/白) 
  6.      */  
  7.     public static int pixelConvert(int pixel) {  
  8.         int result = 0;  
  9.   
  10.         //获取R/G/B  
  11.         int r = (pixel >> 16) & 0 xff;  
  12.         int g = (pixel >> 8) & 0 xff;  
  13.         int b = (pixel) & 0 xff;  
  14.   
  15.         //默认黑色  
  16.         result = 0 xff000000;  
  17.   
  18.         int tmp = r * r &#43; g * g &#43; b * b;  
  19.         if (tmp > 3 * 128 * 128) {  
  20.             //白色,全F  
  21.             result &#43;= 0 x00ffffff;  
  22.         }  
  23.   
  24.         return result;  
  25.     }  

 

 

然后按照获取到的模板,在每次比对的时辰将图片净化,然后比对

成果如下

 

 其实这上方的验证码是付出宝之前的验证码,如今已经换了新的验证码了,所以老的验证码也无所谓了,我就发布出老的破解办法

 

具体的实现逻辑可以看下代码,文章中的两个例子都有涉及到,仅供进修评论辩论应用,禁止一切的不法活动

有对效验码有研究的伴侣可以一块交换。郭沫若

原创粉丝点击