Kaptcha验证码组件

简介: 你好看官,里面请!今天笔者讲的是Kaptcha验证码组件。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。

图形验证码

image.png

Kaptcha验证码组件

  • Kaptcha是谷歌开源的可高度配置的实用验证码生成工具
  • 通过Kaptcha可阻拦大多数机器人脚本操作
  • Kaptcha典型应用于注册、登录、重要信息提交等用户交互

Kaptcha使用步骤

  • Kaptcha配置验证码生成参数
  • 开发KapatchaController生成验证码图片
  • 将前台输入验证码与session保存的验证码进行比对

首先在pom.xml文件中加入依赖

<dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency>

再在applicationContext.xml进行配置

<!--配置Kaptcha--><beanid="kaptchaProducer"class="com.google.code.kaptcha.impl.DefaultKaptcha"><propertyname="config"><beanclass="com.google.code.kaptcha.util.Config"><constructor-arg><props><!--验证码图片不生成边框--><propkey="kaptcha.border">no</prop><!--验证码图片宽度为120像素--><propkey="kaptcha.image.width">120</prop><!--验证码图片字体颜色为蓝色--><propkey="kaptcha.textproducer.font.color">blue</prop><!--每个字符最大占用40像素--><propkey="kaptcha.textproducer.font.size">40</prop><!--验证码包含4个字符--><propkey="kaptcha.textproducer.char.length">4</prop></props></constructor-arg></bean></property></bean>

Controller类

@ControllerpublicclassKaptchaController {
@ResourceprivateProducerkaptchaProducer;
@GetMapping("/api/verify_code")
publicvoidcreateVerifyCode(HttpServletRequestrequest , HttpServletResponseresponse) throwsIOException {
//响应立即过期(通知浏览器让缓存立即失效,否则会导致无法刷新验证码)response.setDateHeader("Expires" , 0);
//不缓存任何图片数据response.setHeader("Cache-Control" , "no-store,no-cache,must-revalidate");
response.setHeader("Cache-Control" ,"post-check=0,pre-check=0");
response.setHeader("Pragma" , "no-cache");
response.setContentType("image/png");
//生成验证码图片Stringtext=kaptchaProducer.createText();
request.getSession().setAttribute("kaptchaVerifyCode" , text);
BufferedImageimage=kaptchaProducer.createImage(text);
ServletOutputStreamoutputStream=response.getOutputStream();
ImageIO.write(image, "png", outputStream);
outputStream.flush();//对客户端输出outputStream.close();
    }
}

使用验证码图片

image.png

确认验证码是否正确

image.png

相关文章
|
6月前
|
移动开发 JavaScript 小程序
uView Code 验证码输入框
uView Code 验证码输入框
117 0
|
6月前
|
移动开发 JavaScript 小程序
uView CodeInput 验证码输入
uView CodeInput 验证码输入
104 0
|
存储
​SpringSecurity-7-自定义AuthenticationProvider实现图形验证码
上一章节我们介绍了如何使用过滤器(Filter)实现图形验证,这是属于Servlet层面,比较简单容易理解。那么这次我们介绍SpringSecurity提供的另一种比较高端的实现图形化验证码,这就是AuthenticationProvider自定义认证。
160 0
|
6月前
|
人工智能 前端开发 安全
springboot项目使用谷歌的kaptcha生成验证码超级简单
springboot项目使用谷歌的kaptcha生成验证码超级简单
187 0
|
Java
SpringSecurity-6-基于Filter实现图形验证码
SpringSecurity中有多种方式实现图像验证码,使用自定义过滤器去处理验证码逻辑是最简单的方式,只要将过滤器添加到合适的位置,当登录的时候,对验证码进行校验,成功就放行,失败则抛出异常。
163 0
|
存储 XML SQL
手把手教你基于 Kaptcha 验证码检验的登录
在网站实际应用过程中,为了防止网站登录接口被机器人轻易地使用,产生一些没有意义的用户数据,所以,采用验证码进行一定程度上的拦截,当然,我们采用的还是一个数字与字母结合的图片验证码形式,后续会讲到更加复杂的数字计算类型的图片验证码,请持续关注我的博客。
468 0
|
Java 容器
kaptcha验证码插件的使用
kaptcha验证码插件的使用
396 0
kaptcha验证码插件的使用
|
NoSQL 前端开发 JavaScript
Spring Boot整合Kaptcha登录页实现验证码功能
Spring Boot整合Kaptcha登录页实现验证码功能
277 0