广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot如何使用Kaptcha实现验证码的生成与验证功能
  • 287
分享到

SpringBoot如何使用Kaptcha实现验证码的生成与验证功能

2023-07-05 11:07:54 287人浏览 独家记忆
摘要

本篇内容主要讲解“SpringBoot如何使用Kaptcha实现验证码的生成与验证功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springBoot如何使用Kaptcha实现验证码的生成与验

本篇内容主要讲解“SpringBoot如何使用Kaptcha实现验证码的生成与验证功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习springBoot如何使用Kaptcha实现验证码的生成与验证功能”吧!

当我们在项目中登录使用验证码的时候,不妨试试Kaptcha生成验证码,非常简单

首先,我们在pom.xml文件中引入kaptcha的Maven依赖

<!-- kaptcha验证码 --><dependency><groupId>com.GitHub.penggle</groupId><artifactId>kaptcha</artifactId><version>2.3.2</version></dependency>

然后,我们编写kaptcha的配置类:KaptchaConfig.java

package com.lzzy.meet.common.kaptcha; import com.Google.code.kaptcha.impl.DefaultKaptcha;import com.google.code.kaptcha.util.Config;import lombok.extern.slf4j.Slf4j;import org.springframework.context.annotation.Bean;import org.springframework.stereotype.Component;import java.util.Properties; @Slf4j@Componentpublic class KaptchaConfig {     @Bean    public DefaultKaptcha getKaptcheCode() {        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();        Properties properties = new Properties();        properties.setProperty("kaptcha.border", "no");        properties.setProperty("kaptcha.textproducer.font.color", "black");        properties.setProperty("kaptcha.image.width", "100");        properties.setProperty("kaptcha.image.height", "36");        properties.setProperty("kaptcha.textproducer.font.size", "30");        properties.setProperty("kaptcha.obscurificator.impl", "com.google.code.kaptcha.impl.ShadowGimpy");        properties.setProperty("kaptcha.session.key", "code");        properties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.NoNoise");        properties.setProperty("kaptcha.background.clear.from", "232,240,254");        properties.setProperty("kaptcha.background.clear.to", "232,240,254");        properties.setProperty("kaptcha.textproducer.char.length", "4");        properties.setProperty("kaptcha.textproducer.font.names", "彩云,宋体,楷体,微软雅黑");        Config config = new Config(properties);        defaultKaptcha.setConfig(config);        return defaultKaptcha;    }}

接下来,我们编写kaptcha的控制层:KaptchaController.java

package com.lzzy.meet.common.kaptcha; import com.google.code.kaptcha.Constants;import com.google.code.kaptcha.Producer;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.WEB.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import javax.imageio.ImageIO;import javax.servlet.ServletOutputStream;import javax.servlet.Http.httpservletRequest;import javax.servlet.http.HttpServletResponse;import java.awt.image.BufferedImage; @Slf4j@Controller@RequestMapping("kaptcha")public class KaptchaController {     @Autowired    private Producer producer;     @GetMapping("kaptcha-image")    public void getKaptchaimage(HttpServletRequest request, HttpServletResponse response) throws Exception {        response.setDateHeader("Expires", 0);        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");        response.addHeader("Cache-Control", "post-check=0, pre-check=0");        response.setHeader("Pragma", "no-cache");        response.setContentType("image/jpeg");        String capText = producer.createText();        log.info("******************当前验证码为:{}******************", capText);        // 将验证码存于session中        request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);        BufferedImage bi = producer.createImage(capText);        ServletOutputStream out = response.getOutputStream();        // 向页面输出验证码        ImageIO.write(bi, "jpg", out);        try {        // 清空缓存区            out.flush();        } finally {        // 关闭输出流            out.close();        }    }}

然后,我们就可以在前端调用katpcha的接口生成验证码了:

<img th:src="@{/kaptcha/kaptcha-image}" class="ver_btn" onclick="this.src=this.src+'?c='+Math.random();"/>

 由于我这里使用的是 thymeleaf 模板引擎,所以路径名称会有点奇怪,生成的验证码样式如图所示:

SpringBoot如何使用Kaptcha实现验证码的生成与验证功能

 5、最后,我们将用户在客户端登陆时输入的验证码传送到服务端进行验证:

public static boolean validate(String reGISterCode) {// 获取Session中验证码Object captcha = ServletUtils.getAttribute(Constants.KAPTCHA_SESSION_KEY);// 判断验证码是否为空if (StringUtils.isEmpty(registerCode)) {return false;}// 校验验证码的正确与否boolean result = registerCode.equalsIgnoreCase(captcha.toString());if (result) {// 正确了后,将验证码从session中删掉ServletUtils.getRequest().getSession().removeAttribute(Constants.KAPTCHA_SESSION_KEY);}// 返回验证结果return result;}

到此,相信大家对“SpringBoot如何使用Kaptcha实现验证码的生成与验证功能”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: SpringBoot如何使用Kaptcha实现验证码的生成与验证功能

本文链接: https://www.lsjlt.com/news/351517.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot使用Kaptcha实现验证码的生成与验证功能
    当我们在项目中登录使用验证码的时候,不妨试试Kaptcha生成验证码,非常简单 1、首先,我们在pom.xml文件中引入kaptcha的maven依赖 <!-- kaptcha...
    99+
    2023-03-13
    SpringBoot实现Kaptcha验证码 SpringBoot Kaptcha验证码 SpringBoot验证码
  • SpringBoot如何使用Kaptcha实现验证码的生成与验证功能
    本篇内容主要讲解“SpringBoot如何使用Kaptcha实现验证码的生成与验证功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot如何使用Kaptcha实现验证码的生成与验...
    99+
    2023-07-05
  • SpringBoot 集成Kaptcha实现验证码功能实例详解
    在一个web应用中验证码是一个常见的元素。不管是防止机器人还是爬虫都有一定的作用,我们是自己编写生产验证码的工具类,也可以使用一些比较方便的验证码工具。在网上收集一些资料之后,今天给大家介绍一下kaptcha的和springboot一起使用...
    99+
    2023-05-31
    spring boot kaptcha
  • springboot验证码生成及验证功能怎么实现
    这篇“springboot验证码生成及验证功能怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboot验证...
    99+
    2023-07-06
  • SpringBoot整合kaptcha实现图片验证码功能
    目录栗子配置文件SpringBoot项目中pom.xml文件项目代码项目结构SpringBootVerifyCodeApplication.javaVerifyCodeConfig....
    99+
    2022-11-13
  • 怎么用Springboot +redis+Kaptcha实现图片验证码功能
    这篇文章主要介绍了怎么用Springboot +redis+Kaptcha实现图片验证码功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Springboot +redis+Kaptc...
    99+
    2023-06-29
  • Google Kaptcha验证码生成的使用实例说明
    目录Kaptcha是什么?怎么使用Kaptcha?1.首先下载jar包2.配置kaptcha3.将验证码保存进session中4.验证码校验Kaptcha验证码配置效果图如下Kapt...
    99+
    2022-11-13
  • spring mvc 使用kaptcha配置生成验证码实例
    使用Kaptcha 生成验证码十分简单并且参数可以进行自定义,以下简单记录下使用步骤。1.在pom.xml中添加maven依赖:<dependency> <groupId>com.google.code.kaptc...
    99+
    2023-05-31
    kaptcha spring mvc
  • Springboot +redis+谷歌开源Kaptcha实现图片验证码功能
    背景 注册-登录-修改密码一般需要发送验证码,但是容易被攻击恶意调⽤什么是短信-邮箱轰炸机手机短信轰炸机是批、循环给手机无限发送各种网站的注册验证码短信的方法。公司带来的损失短信1条...
    99+
    2022-11-13
  • ASP.NET如何实现验证码生成功能
    这篇文章给大家分享的是有关ASP.NET如何实现验证码生成功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。作业:验证码要求:(1)验证码应该是图片格式,不能是文字格式,即无法用鼠标选中。(2)验证码上应该有噪点...
    99+
    2023-06-29
  • Python如何实现生成验证码的功能
    这篇文章主要介绍“Python如何实现生成验证码的功能”,在日常操作中,相信很多人在Python如何实现生成验证码的功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实现生成验证码的功能”的疑...
    99+
    2023-06-02
  • Java登录功能实现token生成与验证
    一、token与cookie相比较的优势 1、支持跨域访问,将token置于请求头中,而cookie是不支持跨域访问的; 2、无状态化,服务端无需存储token,只...
    99+
    2022-11-12
  • Ajax+Struts2如何实现验证码验证功能
    这篇文章主要为大家展示了“Ajax+Struts2如何实现验证码验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ajax+Struts2如何实现验证码验证...
    99+
    2022-10-19
  • android端实现验证码随机生成功能
    本文实例为大家分享了android端生成随机验证码的具体代码,供大家参考,具体内容如下package com.nobeg.util; import java.util.Random; import android.graphics.Bi...
    99+
    2023-05-30
    android 验证码 roi
  • 短信验证码校验功能如何利用SpringBoot实现
    本篇文章为大家展示了短信验证码校验功能如何利用SpringBoot实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。思路用户输入手机号后,点击按钮获取验证码。并设置冷却时间,防止用户频繁点击。后台生...
    99+
    2023-05-31
    springboot bo
  • 利用java如何实现一个验证码生成功能
    利用java如何实现一个验证码生成功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、serialVersionUID    private...
    99+
    2023-05-31
    java 验证码 ava
  • Java如何实现验证码生成
    这篇文章主要介绍了Java如何实现验证码生成,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。验证码大家都知道,它的作用也不用我多说了吧。如果不太清楚请参见百度百科中的解释,一般...
    99+
    2023-05-30
    java
  • C#使用GDI+实现生成验证码
    一、概述 一般处理程序 ashx :它没有服务器控件,用response输出什么就是什么。 生成验证码原理:产生随机字符,并将字符生成为图片,同时储存到Session里去,然后验证用...
    99+
    2022-11-13
  • Java的Cookie、Session及kaptcha验证码如何使用
    这篇文章主要讲解了“Java的Cookie、Session及kaptcha验证码如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java的Cookie、Session及kaptcha验...
    99+
    2023-07-02
  • Django验证码的生成与使用示例
    前言 本文主要介绍的是关于Django验证码生成与使用的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 方法如下: 1、基于PIL生成一个带验证码的图片和验证码,生成验证码图片需要Monaco...
    99+
    2022-06-04
    验证码 示例 Django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作