验证码开发过程中的3个误区:
1、 背景干扰:干扰线、干扰点、干扰图,基本没有,程序很容易通过高亮度调节去除掉。
2、 字符旋转:破解机器人通过数次学习、旋转之后,能够得到90%以上的正确识别率,采用常规字体,能够得到接近100%的识别。
3、 随机间距:基本没用,采用提取高亮度之后,采用图片切割的方法,很容易就将随机间距消灭掉。
防止被破解:
1、 背景干扰线尽量能够干扰到字符,采用和字符相同的颜色,能够破坏高亮度反差色提取法对字符的学习。QQ有采用。
2、 矢量变形:想Google、Ms、Yahoo都采用了这种变态的方法,这种将字符进行扭曲变形,基本上机器识别率为零,因为没有相对应的固定形状。
损失是用户也不一定认得。需要验证码图片有一些大才行。
3、 字符粘连,可以破坏掉字符切割法分割字符,Google也有用到这个,QQ也有采用。
4、 中文验证码,中文验证码的识别难度比较大,但是现在逐渐的也慢慢被学习并且破解。
5、 字符旋转:需要和字符粘连在一起才能够起作用,他们一起,验证码几乎不具备机器破解可能性。
Google、Yahoo、QQ的验证码都是非常难以被机器识别的:
QQ验证码的特点:干扰线颜色同字符颜色、字符旋转、字符粘连。
Google验证码特点:矢量变形、字符粘连、字符旋转。
Yahoo验证码特点:矢量变形、字符粘连、字符旋转。