验证码系列-2-图片验证码生成

图片验证码生成原理

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

图形验证码可调整的主要属性以下:

  • 验证码的字体
  • 验证码的字体大小
  • 验证码的字体颜色
  • 验证码内容的范围(数字、字母、中文汉字)
  • 验证码的图片大小。 边框、边框粗细、边框颜色
  • 验证码的干扰线
  • 验证码的样式(3D, 普通模糊)

验证码生成最佳实践

  • 用不一样的颜色渲染字符
  • 使某些字符比背景更暗,并使某些字符更亮
  • 为背景和角色使用渐变色
  • 不要将全部字符垂直对齐
  • 不要回答单词,以即可以使用字典
  • 使用更多的字符和符号
  • 使用大写和小写字符
  • 每次使用不一样数量的字符
  • 更加重烈地旋转一些字符(即倒置)
  • 作更多的字符重叠
  • 使单个字符的一些像素不接触
  • 网格线与相同颜色的字符交叉
  • 考虑问天然语言问题

验证码库

如下采集了来自网络上经常使用的验证码库: git

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

Python pycapt
PHP Gregwar/Captcha
PHP mewebstudio/captchaweb

Node node-captcha
Node gifcaptcha网络

参考

cnn_captchadom

相关文章
相关标签/搜索