如何使用PHP破解站点验证代码

如何使用PHP破解站点验证代码
的验证代码的功能是防止恶意程序注册,使用暴力破解,或批量发帖。验证码是一组随机的数字或符号,生成一幅图片,干扰像素图片(防止OCR),由用户肉眼识别验证码的输入信息,提交网站验证为了验证成功后,使用功能。饼干/学习验证码识别技术不仅可以知道验证码的原理,但也让你知道如何防止密码被破解。

最常见的验证码如下:

1,四位数字,一个随机数字符串,最原始的验证码,验证效果几乎为零。

2。随机数字图片验证码。图片的字符相当不错,有些可能添加一些随机的干扰素,还有一些随机的字符颜色,验证功能比上次好。没有基本的图形和图像知识的人是不能被破解的!

三.随机数各种图片格式+随机大写英文字母+随机干扰像素+随机位置

4,汉字是最新注册的验证码,随机生成,玩起来更难影响用户体验,所以一般应用比较小。

为了简单起见,解释主要针对第二类。首先,看看因特网上常见的验证码的图片:
第一,最简单,图片背景和数字都使用同一颜色,字符规则,字符位置统一。
第二不容易。事实上,仔细研究会发现它的规律、背景色和干扰素无论怎样变化,验证性状是正常的,颜色是一样的,所以消除干扰素很容易,只要非性状的色素被消除。
第三个看起来更复杂。当处理背景色和干扰素时,字符的颜色在变化,每个字符的颜色也不同。
第四,除了在第三幅图片中提到的特征外,在文本中添加两条直线,这似乎很困难而且很容易消除。
验证码识别一般分为以下步骤

1,毕竟删除字体识别码,不是专业的OCR识别,并且,由于各个网站的验证码是不同的,因此,最常用的方法是验证代码签名数据库的建立。我们需要的类型下载一些图片,这些图片,包括所有的字符,我们这里只信图片,如此长的时间来收集你可以包含0-9的图片。

2,两个值归一化的两个值是一个数字上的每个像素的验证数的图片,其中的数字为1,另一部分为0,因此可以计算每个类型的数量,将这些字体记录为键。

3,对图像的特征进行识别,得到两幅图像的特征值。

4,将控制样本步进到图片中,对3种代码的特征和验证码进行比较,验证图片编号。

使用本方法,认证码的识别基本上可以是100%。

通过以上步骤,你可能已经说过了,没有发现干扰素怎么去除啊!事实上,除去干扰素的方法很简单,是干扰素的重要特征不影响验证码,显示,所以干扰素及其RGB生产可能低于或高于一定值时,,我给图片实例,干扰素的RGB值不超过125,所以,我们很容易摆脱干扰素。

简单的验证码是由数字和字母,格式是统一的,而且位置固定每次。识别码的进一步研究,需要确定目标:验证码验证码字符和数字组成,旋转(大约旋转),位置不固定,人物与人物之间的粘附性,并验证码是干扰素。

下面的图表举例说明。
第一步:两值。验证码1部分,0部分背景表达的识别方法很简单,我们打印出来的RGB代码整个画面,然后分析其规律,通过RGB代码,我们可以很容易地分辨出R值以上图片是大于120,小于80对G和B的值,根据这个规律,所以很容易把上面的图像二值化。

看看上面的第三张验证图片。
只是看一看,感觉很复杂。验证码的背景色是每次不同,它不是单色的,和每一个验证码数的颜色是不同的在一个时间。似乎很难两价值,事实上,我们打印出其RGB值是很容易找到的不管如何改变数字彩色验证、数字RGB值总是小于125的值,所以法官rgbarray美元{'} { } rgbarray美元绿色< 125 | | rgbarray {蓝} |美元的|<125<125我们可以很容易地知道是多少,在哪里是背景。

我们发现这些规则的原因是,干扰素产生时,如果干扰素不影响数字的显示效果,就必须独立使用干扰素RGB和数字RGB,而不是相互干扰,只要我们了解了这个规律,就可以很容易地实现这两个值。

我们发现120, 80125和其他阈值,这可能与实际RGB不同。因此,有时在某些地方会出现1个值,但在不确定验证码位置的情况下,可能会造成干扰,因此有必要对两个值进行消噪处理。

第二步:de-noising.the去噪的原理很简单,就是分离去除的有效值,如果噪音比较高,效率比较高,有很多工作要做。幸运的是,我们不需要这样一个深刻的,我们用最简单的方法,如果1点是确定在左、右、左、右左、右8个位置的号码是1点,如果不是1,那是一个点,可以直接设置为1。
如上所述,我们使用这种方法很容易发现红盒部分是1像素,直接设置为1可以。在判断我们使用一种技巧时,有时噪声可能是两个连续的1,所以我们计算了这8个方向上的值和值,最后我们判断它们是否小于某个特定的阈值。

第三步:剪字,剪字的方法有很多种。这里我们使用最简单的一个,首先将它垂直切割成字符,然后在水平方向上移除超过0000个字符。
第一步是切开红线部分,第二步切割蓝线部分,这样可以获得独立的字符。
根据上述方法,DW字符将被切割成一个字符,即错误切割,因此我们参与了剪切字符的切割。

第四步:粘连性字符切割。生产验证码,粘连字符容易分离的规则,如果人物本身具有缩放、变形很难处理,通过分析,我们可以发现上面的文字是一种很简单的方法,只有粘附规则字符,所以这种情况,我们使用一个非常简单的方式。当完成分割操作,我们不能立即确定字符的分割部分,验证关键因素验证减少字符宽度大于阈值,阈值的选择标准是一个字符,无论怎样旋转变形大于门槛,所以如果块我们把大于T他的阈值,我们可以认为这是一个感人的字符;如果大于2的门槛,这是三个字符,等等。当这个规则是已知的,它是非常简单的切胶的特性。如果我们发现这是一个胶块字符,可以直接分块为两个或多个新的块。当然,为了更好的还原性,我通常用1,1,的字符块的部分适当地补充。

第五步:匹配字符。有许多方法来建立旋转特征的特征码,并没有深入研究。在这里我用最简单的方式,所有的特点,建立图书馆,所以越来越多的研究工作在我的代码提供,其目的是,第一手图片识别验证码,然后通过研究方法,写签名数据库。更多的图片数据是这样写的,更高的验证和识别的准确性。

经过这些步骤,我们基本上可以识别互联网上的大部分验证码。在这里,我们使用最简单的方法,不使用任何OCR知识。

并对验证码提出了一些建议:

该程序的识别码,最困难的部分是验证切削和建立签名的特点,与国内许多程序员只做验证码,总是爱有很多的干扰素,在验证码干扰线,效果不说,还达不到好的结果;因此,想让自己的验证码识别难,只有做到以下两点就够了

1,字符粘连,最好的字符都有粘连部分;

2、不要使用规范字符,验证码的各个部分使用不同比例的缩放或旋转。

只要这两个点完成,或者两个点变形,识别程序就很难识别。

以上是本文的全部内容:用php解决网站验证代码,希望能帮助大家学习。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部