1

图片验证码生成原理

图片验证码一般是 26 个字母加 0 到 9 随机数生成,比如生成 4位或者6位的数字英文验证码。一般不区分大小写。生成之后通过调用画图方法画到承载验证码的带底色的图片中,页面显示时是一带验证码张的图片。
这种可能会被软件破解识别。可以加一些颜色或者线条的混淆来 降低识别率来,一定程度上防止被破解。

图形验证码可调整的主要属性如下:
  • 验证码的字体
  • 验证码的字体大小
  • 验证码的字体颜色
  • 验证码内容的范围(数字、字母、中文汉字)
  • 验证码的图片大小。 边框、边框粗细、边框颜色
  • 验证码的干扰线
  • 验证码的样式(3D, 普通模糊)
验证码生成最佳实践
  • 用不同的颜色渲染字符
  • 使某些字符比背景更暗,并使某些字符更亮
  • 为背景和角色使用渐变色
  • 不要将所有字符垂直对齐
  • 不要回答单词,以便可以使用字典
  • 使用更多的字符和符号
  • 使用大写和小写字符
  • 每次使用不同数量的字符
  • 更加剧烈地旋转一些字符(即倒置)
  • 做更多的字符重叠
  • 使单个字符的一些像素不接触
  • 网格线与相同颜色的字符交叉
  • 考虑问自然语言问题

验证码库

以下采集了来自网络上常用的验证码库:

Java验证码生成库 JCaptcha
Struts验证码插件 JCaptcha4Struts2
Java图形验证码 SimpleCaptcha
Java验证码 kaptcha
Java验证码 patchca
Java验证码生成库 imageRandom
iCaptcha
Java图片验证库SkewPassImage
Java 验证码 Cage

Python pycapt
PHP Gregwar/Captcha
PHP mewebstudio/captcha

Node node-captcha
Node gifcaptcha

参考

cnn_captcha


sillyhong
73 声望1 粉丝

引用和评论

0 条评论