Kaptcha 是一个可高度配置的实用验证码生成工具,可自由配置的选项如:
- 验证码的字体
- 验证码字体的大小
- 验证码字体的字体颜色
- 验证码内容的范围(数字,字母,中文汉字!)
- 验证码图片的大小,边框,边框粗细,边框颜色
- 验证码的干扰线
- 验证码的样式(鱼眼样式、3D、普通模糊、...)
---
## 配置设置
> 验证码开关
```
shiro.user.captchaEnabled: true
```
> 验证码类型 math 数组计算 char 字符
```
shiro.user.captchaType:char/math
```
## Kaptcha详细配置表
Constant|描述|默认值
---|---|---
kaptcha.border|"图片边框,合法值:yes | no"|yes
kaptcha.border.color|"边框颜色,合法值: r/g/b (and optional alpha) 或者 white/black/blue."|black
kaptcha.image.width|图片宽|200
kaptcha.image.height|图片高|50
kaptcha.producer.impl|图片实现类|com.google.code.kaptcha.impl.DefaultKaptcha
kaptcha.textproducer.impl|文本实现类|com.google.code.kaptcha.text.impl.DefaultTextCreator
kaptcha.textproducer.char.string|文本集合,验证码只从此集合中获取|abcde2345678gfynmnpwx
kaptcha.textproducer.char.length|验证码长度|5
kaptcha.textproducer.font.names|字体|"Arial| Courier"
kaptcha.textproducer.font.size|字体大小|40px.
kaptcha.textproducer.font.color|"字体颜色,合法值: r/g/b 或者 white/black/blue."|black
kaptcha.textproducer.char.space|文字间隔|2
kaptcha.noise.impl|干扰实现类|com.google.code.kaptcha.impl.DefaultNoise
kaptcha.noise.color|"干扰 颜色,合法值: r/g/b 或者 white/black/blue."|black
kaptcha.obscurificator.impl|图片样式:水纹[com.google.code.kaptcha.impl.WaterRipple]、鱼眼[com.google.code.kaptcha.impl.FishEyeGimpy]、阴影[com.google.code.kaptcha.impl.ShadowGimpy]|com.google.code.kaptcha.impl.WaterRipple
kaptcha.background.impl|背景实现类|com.google.code.kaptcha.impl.DefaultBackground
kaptcha.background.clear.from|背景颜色渐变,开始颜色|light grey
kaptcha.background.clear.to|背景颜色渐变, 结束颜色|white
kaptcha.word.impl|文字渲染器|com.google.code.kaptcha.text.impl.DefaultWordRenderer
kaptcha.session.key|session key|KAPTCHA_SESSION_KEY
kaptcha.session.date|session date|KAPTCHA_SESSION_DATE
## Spring MVC 整合 Kaptcha
> pom.xml 配置文件如下:
```
com.google.code.kaptcha
kaptcha
2.3
```
主要增加了com.google.code.kaptcha:kaptcha 依赖
---
## 创建 Spring 配置
创建一个名为
spring-context-kaptcha.xml Spring 配置文件,配置如下:

## 控制器关键代码
Controller 层的关键代码如下,主要作用为将生成的验证码放入 Session 并输出到页面

## JSP 关键代码
JSP 使用
![]()
标签去请求验证码图片
```

```
为图片绑定一个点击事件用于无刷新更换验证码
```
$(function () { // 刷新验证码
$("#verification").bind("click", function () {
$(this).hide().attr('src', '/verification?random=' + Math.random()).fadeIn();
});
});
```