菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
15
0

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

原创
05/13 14:22
阅读数 865

图片验证码生成原理

图片验证码一般是 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

发表评论

0/200
15 点赞
0 评论
收藏
为你推荐 换一批