hutool工具类
hutool工具类是一个非常强大的工具类,这里可以用到特别简单的一个验证码生成工具包
createCode 创建验证码,实现类需同时生成随机验证码字符串和验证码图片
getCode 获取验证码的文字内容
verify 验证验证码是否正确
write 将验证码写出到目标流中
写出到文件或者流中
public static void main(String[] args) {
//验证码的长、宽、位数、干扰的个数
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100,5,20);
//可以写出到文件,也可以写出到流
lineCaptcha.write("d:/line.png");
//获取生成的验证码
String code = lineCaptcha.getCode();
System.out.println(code);
//验证生成的验证码返回boolean值
boolean verify = lineCaptcha.verify(code);
System.out.println(verify);
//生成圆圈干扰验证码
CircleCaptcha circleCaptcha = CaptchaUtil.createCircleCaptcha(200, 100, 4, 20);
//生成扭曲干扰验证码
ShearCaptcha shearCaptcha = CaptchaUtil.createShearCaptcha(300, 100, 4, 4);
}
当然浏览器中使用非常广泛,可以通过web项目写出到浏览器中,通过servlet继承httpservlet方法实现
public class GetCodeServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//验证码的长、宽、位数、干扰的个数
CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(80, 40, 4, 4);
req.getSession().setAttribute("code", captcha.getCode());
//直接servlet输出
captcha.write(resp.getOutputStream());
}
}
这里我把验证码存在了session中,因为验证的时候用到可以直接从session中取出。一定注意hutool的jar包不要放错位置,建议在web下的WEB-INF下的lib包中。
hutool jar包下载地址!