SpringBoot 使用kaptcha验证码

SpringBoot集成Kaptcha实现图形验证码 前言 相信大家在浏览网页的时候,经常会碰到人机校验。很经典的要属Google的人机校验,用多张图片进行点击校验。可以说是对于我们人类来说就是很烦的啦。烦归烦,但是为了安全着想,我们还是需要为自己的项目加上验证码机制,特别是一些防刷的接口调用下。今天我们就来学习简单的图形验证码实现。 环境准备 SpringBoot DEMO,Maven项目。 创建SpringBoot项目很简单,Intellij I... 阅读详情

首先在pom文件中引入坐标:

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

再编写一个kaptcha验证码的配置文件myKaptcha.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:task="http://www.springframework.org/schema/task" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:gfe="http://www.springframework.org/schema/gemfire"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
        http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd"
    default-lazy-init="true">

    <bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha">
        <property name="config">
            <bean class="com.google.code.kaptcha.util.Config">
                <constructor-arg>
                    <props>                        
                        <!-- 验证码宽度 -->  
                        <prop key="kaptcha.image.width">150</prop>  
                        <!-- 验证码高度 -->  
                        <prop key="kaptcha.image.height">40</prop>  
                        <!-- 生成验证码内容范围 -->  
                        <prop key="kaptcha.textproducer.char.string">0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ</prop>  
                        <!-- 验证码个数 -->  
                        <prop key="kaptcha.textproducer.char.length">5</prop>  
                        <!-- 是否有边框 -->  
                        <prop key="kaptcha.border">no</prop>  
                        <!-- 边框颜色 -->  
                        <prop key="kaptcha.border.color">105,179,90</prop>  
                        <!-- 边框厚度 -->  
                        <prop key="kaptcha.border.thickness">1</prop>  
                        <!-- 验证码字体颜色 -->  
                        <prop key="kaptcha.textproducer.font.color">black</prop>  
                        <!-- 验证码字体大小 -->  
                        <prop key="kaptcha.textproducer.font.size">30</prop>  
                        <!-- 验证码所属字体样式 -->  
                        <prop key="kaptcha.textproducer.font.names">微软雅黑</prop>  
                        <!-- 干扰线颜色 -->  
                        <prop key="kaptcha.noise.color">black</prop>  
                        <!-- 验证码文本字符间距 -->  
                        <prop key="kaptcha.textproducer.char.space">5</prop>  
                        <!-- 图片样式 :阴影-->  
                        <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.ShadowGimpy</prop> 
                        <!--  -->
                    </props>
                </constructor-arg>
            </bean>
        </property>
    </bean>

</beans>

在项目中使用注解@ImportResource自动加载该配置文件:

@SpringBootApplication
@ImportResource(locations = { "classpath:myKaptcha.xml" })
@MapperScan("com.platform.mapper")
public class PlatformApplication {

	public static void main(String[] args) {
		SpringApplication.run(PlatformApplication.class, args);
	}

}

最后编写一个Controller实现验证码的生产:
 

/**  
	 * @Title: defaultKaptcha  
	 * @Description: 生成验证码,并存到session中  
	 * @param @param httpServletRequest
	 * @param @param httpServletResponse
	 * @param @throws Exception    参数  
	 * @return void    返回类型  
	 * @throws  
	 */  
	 
	@RequestMapping("/defaultKaptcha") 
    public void defaultKaptcha(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws Exception{  
            byte[] captchaChallengeAsJpeg = null;    
             ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();    
             try {    
             //生产验证码字符串并保存到session中  
             String createText = captchaProducer.createText();  
             //打印验证码
             System.out.println(createText);
             httpServletRequest.getSession().setAttribute("vrifyCode", createText);  
             //使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中  
             BufferedImage challenge = captchaProducer.createImage(createText);  
             ImageIO.write(challenge, "jpg", jpegOutputStream);  
             } catch (IllegalArgumentException e) {    
                 httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);    
                 return;    
             }   
             
             //定义response输出类型为image/jpeg类型,使用response输出流输出图片的byte数组  
             captchaChallengeAsJpeg = jpegOutputStream.toByteArray();    
             httpServletResponse.setHeader("Cache-Control", "no-store");    
             httpServletResponse.setHeader("Pragma", "no-cache");    
             httpServletResponse.setDateHeader("Expires", 0);    
             httpServletResponse.setContentType("image/jpeg");    
             ServletOutputStream responseOutputStream = httpServletResponse.getOutputStream();    
             responseOutputStream.write(captchaChallengeAsJpeg);    
             responseOutputStream.flush();    
             responseOutputStream.close();    
    }  

然后在前端界面便可以使用<img>标签使用便可以了。最后附上效果图:

Google Kaptcha 实现登录验证码(SSM 和 SpringBoot) 目录 一、效果图: 二、导入 jar 包 三、SSM 通过Kaptcha 简单实现验证码 四、SpringBoot 通过 Kaptcha 简单实现验证码 五、Kaptcha 属性表 六、关注 一、效果图: 二、导入 jar 包 1.由于这是大神写好封装起来的一个框架,所有我们使用前得先下载相关的 jar 包。 第一种:maven <!-- 验证码 -->... 阅读详情

相关推荐

SpringBoot整合kaptcha(谷歌验证码工具)实现验证码功能

SpringBoot整合kaptcha(谷歌验证码工具)实现验证码功能,kaptcha是Google提供的一个图形验证码插件,有了它,你可以通过简单的配置生成各种样式的验证码。

qq_50954744的博客 6982

Java 生成验证码 可自定义配置

1.使用kaptcha配置生成验证码 使用maven坐标引入pom <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> <excl...

Chocolate_men的博客 1051

【SpringBoot】15、SpringBoot中使用Kaptcha实现验证码

当我们在项目中登录使用验证码的时候,不妨试试Kaptcha生成验证码,非常简单 1、我们在pom.xml文件中引入kaptcha的maven依赖 <!-- kaptcha验证码 --> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha&lt...

JACKAL 20万+

基于kaptcha插件来实现验证码功能(超级简单,超级好用)

这篇文章简单介绍了kaptcha的使用,并提供了案例实现,按照文章来走,可以轻松实现验证码功能

smilehjl 1616

别再为GEE注册发愁了!用谷歌Cloud Project,5分钟搞定谷歌地球引擎账户(保姆级图文)

本文提供2024最新版谷歌地球引擎(GEE)账户注册的保姆级教程,通过谷歌Cloud Project快速完成注册,5分钟极速通关。详细解析注册前的准备、分步图解流程、常见误区及解决方案,帮助用户避开90%的注册陷阱,直达GEE核心功能区。

weixin_42557830的博客 199

MOS管开关设计知识-(五种MOS管开关电路图方式)

在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工作的,但并不是优秀的,作为正式的产品设计也是不允许的。 下面是我对MOSFET及MOSFET驱动电路基础的一点总结,其中参考了一些资料,非全部原创。包括MOS管的介绍,特性,驱动以及应用电路。 1、MOS管种类和结构 MOSFET管是FET的...

树卡花 7万+

SpringBoot登录加入验证码

登录样式是不是很好看 1.导入依赖 <!-- 验证码 --> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> </dependenc

qq_43791139的博客 2358

Linux内核同步原语之队列自旋锁(Queued Spin Lock)深度解析

本文深度解析了Linux内核中的队列自旋锁(Queued Spin Lock)机制。通过对比传统自旋锁的瓶颈,详细阐述了队列自旋锁如何利用紧凑的4字节结构、每CPU节点数组和pending位优化,有效解决多核(SMP)系统中的缓存行乒乓和惊群效应,实现公平、高效的锁等待队列,从而显著提升内核在高并发场景下的可扩展性与性能。

weixin_29205061的博客 303

sprintboot验证码kaptcha 自定义图片样式

文章目录前言一、kaptcha默认的图片样式的问题二、自定义图片效果的步骤1.创建自定义鱼纹效果类2.修改kaptcha.xml配置总结 前言 本文教大家如何自定义kaptcha的图片样式,效果如下: 一、kaptcha默认的图片样式的问题 这里我以鱼眼效果为例,大家看下默认的效果: 从上图大家可以看到,文字变形很严重,不是很好辨认。 下面是xml配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www

ifelse的个人博客 4021

embedding计算过程

文章目录embedding计算过程(错了跟我讲,我会改)参考示例个人理解过程图示总结(基于pytorch) embedding计算过程(错了跟我讲,我会改) 参考示例 https://www.jianshu.com/p/63e7acc5e890 个人理解过程图示 总结(基于pytorch) 总的来说,就是将独热向量的长度(对应嵌入层的num_embeddings)转变为嵌入层的emdedding_size(而独热向量的维数就是你的数据中一共产生了多少个不一样的词,至少是这么多)。 数据的变化,将二维

纸上得来终觉浅,绝知此事要躬行! 1631

具身智能 | 从具身智能出发谈多传感器融合技术

多传感器融合感知是具身智能系统突破“感知—认知—行动”闭环的核心使能技术。本文从具身智能的视角出发,对多传感器融合技术进行系统综述。首先阐述了具身智能对多传感器融合提出的独特需求,包括异构感知集成、跨模态语义对齐和实时闭环决策。其次,构建了多层级融合技术分类框架,从数据层融合、特征层融合、决策层融合、时序融合到多模态大语言模型(MLLM)融合,逐层梳理主流方法与演进脉络。在此基础上,分析了面向具身智能的通用融合架构设计,涵盖了感知—推理—执行三层架构及其关键组件。

尘世冰封的专栏 310

前后端分离java开发图形验证码+谷歌开源Kaptcha使用(Springboot+redis实现图形验证码校验)

如何避免自己的网站被轰炸、刷,表单重复提交问题解决方案,谷歌开源Kaptcha框架介绍,前后端分离实战开发验证码思路分析,前后端分离实战开发验证码java后端代码实现,KaptchaConfig配置类详解,java生成验证码存放到redis代码实现,springboot+redis生成图片验证码,base64图片在线转换工具,验证码未来发展的讨论

是谢添啊 3583

华为OD机试真题 新系统 2026-07-22 Java&Go&C 实现【最小代价完成论文评审】

某校有 n 篇论文需要分配给教师评审。 每篇论文 i 可由 files[i] 对应的教师列表中任一教师评审。 每篇论文至少需要一名教师评审。 每位教师 t 不论被分配多少篇论文,其评审费用固定为 cost[t]。 请给出参与评审教师数量最少时的总费用。 如果存在多种方案满足教师数量最少,则选择总费用最小的方案。

MISAYAONE的博客 148

SpringBoot整合Kaptcha实现图形验证码

SpringBoot整合Kaptcha实现图形验证码

DaenCode的博客 950

ransac拟合2D圆(三点定圆 c++详细版)

RANSAC(Random Sample Consensus,随机采样一致性)算法是一种基于随机采样的迭代算法,主要用于从一组包含大量噪声和异常值(外点)的数据中估计数学模型的参数。

twnkie的博客 1046

PX4从放弃到精通(五):PX4中的姿态表示方法及转换关系

文章目录机体坐标系与地理坐标系一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 机体坐标系与地理坐标系 在实际应用中,加速度计的测量轴是由运动平台安装固定此器件的轴向决定的。这些坐标轴就形成了载体坐标系,定义如下: 坐标原点设在载体质心(这样可简化运动方程的推导); y轴指向载体前方,称为横滚轴,横滚角以y轴为起始旋转轴而得到,符合右手定则; x轴与y轴夹角90°,指向载体横向,称为俯仰轴,俯仰角以x轴为起始旋转轴而得到,符合右手定则; z轴与x轴、y轴构成右手笛卡儿坐标系,指向载体垂直方向

超维空间科技的博客 8110

SpringBoot集成Kaptcha验证码

在开发中,验证码功能是一个常见且重要的功能,Kaptcha 是大名鼎鼎的谷歌公司提供的一款用于生成验证码的插件,支持高度可配置;本章将通过一个简单的示例展示如何实现验证码功能。

少年闰土 777

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

验证码 kaptcha之springboot用法

在我们用户登录的时候,为了安全性考虑,会增加验证码的功能,这里采用的是google的kaptcha;spirngboot是轻便,独立,使得基于spring的应用开发变得特别简单。网上有很多介绍springboot的有点,这里不多说。言归正抓,讲下登陆时验证码结合springboot的用法 引入kaptcha所需要的jar包,我这里用的是maven com.github.penggle

waiting的专栏 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SpringBoot 中使用 Kaptcha 验证码生成器

Kaptcha 介绍 验证码(CAPTCHA):是 Completely Automated Public Turing test to tell Computers and Humans Apart(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。 作用:可以防止 恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破...

傲凝的博客 4858

SpringBoot中使用kaptcha生成验证码

kaptcha是谷歌开源的简单实用的验证码生成工具。通过设置参数,可以自定义验证码大小、颜色、显示的字符等等。

qq_31906861的博客 1263

使用 SpringBoot + kaptcha 生成、校对 验证码

一、前言验证码这么常见,想必不用多说了。最近做项目要用到验证码,也参考了网上很多方法,唯有下面方法感觉是最简单的,使用的是 Google 的 kaptcha 框架。二、功能演示三、代码1、代码结构2、pom(SpringBoot+thymeleaf+web+kaptcha ) 注意引入 kaptcha 的 Maven 依赖 &amp;lt;!-- https://mvnrepository.co

IT小村 1万+

Springboot整合kaptcha验证码

Springboot整合kaptcha验证码 01、通过配置类来配置kaptcha 01-01、添加kaptcha的依赖: <!-- kaptcha验证码 --> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> </

qq_38231598的博客 1643

SpringBoot整合Kaptcha验证码

SpringBoot整合Kaptcha验证码 Kaptcha 简介 Kaptcha 是一个可高度配置的实用验证码生成工具,可自由配置的选项如: 验证码的字体 验证码字体的大小 验证码字体的字体颜色 验证码内容的范围(数字,字母,中文汉字!) 验证码图片的大小,边框,边框粗细,边框颜色 验证码的干扰线 验证码的样式(鱼眼样式、3D、普通模糊、...) Kaptcha 详细配置表 ...

wildcat-的博客 853

SpringBoot + kaptcha 生成验证码

SpringBoot + kaptcha 生成验证码pomKaptchaConfigKaptchaController效果 验证码生成使用的是 Google 的 kaptcha 框架,固定的代码,只需要自己配置一些参数即可,下面的代码是主要的代码,像项目的前端代码、验证生成的验证码之类的代码没有给出,所以需要一定的springboot基础 pom 需要引入 kaptcha 的 Maven 依赖 <!-- https://mvnrepository.com/artifact/com.github.pen

冲冲冲的博客 380

SpringBoot整合Kaptcha(图形验证码)

本篇博客主要总结 Spring Boot 整合 Kaptcha 来实现图片验证码。本篇会以一个 Demo 为例,以 Spring Boot 为基础架构,不涉及任何有关数据库的操作以及前端炫酷界面的实现,方便初学者学习整理。

小异常的博客 3689

SpringBoot:kaptcha生成验证码

SpringBoot:kaptcha生成验证码,介绍如何将kaptcha框架集成到SpringBoot项目中,并进行简单的验证码生成使用。

席木木的博客 1374
上一篇: SpringBoot 实现文件下载
下一篇: Python文件操作笔记
silentkunden
博客等级 码龄9年 28粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值