1、pom.xml 添加
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.6.2</version>
</dependency>
2、实例
@RestController
@RequestMapping("/captcha")
public class CaptchaController {
@RequestMapping("/png")
public void png(HttpServletResponse response) throws IOException
{
// png类型
SpecCaptcha captcha = new SpecCaptcha(130, 48);
// 获取验证码的字符
String text = captcha.text();
// 获取验证码的字符数组
char[] chars = captcha.textChar();
System.out.println("验证码:" + text);
System.out.println(chars);
// 输出验证码
captcha.out(response.getOutputStream());
}
@RequestMapping("/gif")
public void gif(HttpServletResponse response) throws IOException
{
// 三个参数分别为宽、高、位数
GifCaptcha gifCaptcha = new GifCaptcha(100, 48, 4);
// 设置类型:字母数字混合
gifCaptcha.setCharType(Captcha.TYPE_DEFAULT);
//获取验证码
String text = gifCaptcha.text();
System.out.println("验证码为:" + text);
// 输出验证码
gifCaptcha.out(response.getOutputStream());
}
@RequestMapping("/chinese")
public void chinese(HttpServletResponse response) throws IOException
{
// 中文类型
ChineseCaptcha captcha = new ChineseCaptcha(130, 48);
//获取验证码
String text = captcha.text();
System.out.println("验证码为:" + text);
// 输出验证码
captcha.out(response.getOutputStream());
}
@RequestMapping("/count")
public void count(HttpServletResponse response) throws IOException
{
// 算术类型
ArithmeticCaptcha captcha = new ArithmeticCaptcha(130, 48);
// 几位数运算,默认是两位
captcha.setLen(3);
// 获取运算的公式:5-1+1=?
captcha.getArithmeticString();
// 获取运算的结果:5
String text = captcha.text();
System.out.println("计算结果为:" + text);
// 输出验证码
captcha.out(response.getOutputStream());
}
}
正常开发的时候,会将其中的 【text】存储在session或者redis中,并设置到期时间。