【kaptcha】kaptcha验证码的使用-SpringBoot集成

Kaptcha验证码的依赖

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

Kaptcha验证码的配置类,对验证码的一些属性进行配置,根据项目更改


/*** 验证码工具kaptcha的配置类*/
@Configuration
public class CaptchaConfig {/*** 配置Producer接口的实现类DefaultKaptcha的bean对象,该对象用于生成验证码图片;* 并给其指定生成的验证码图片的设置项;bean对象的id引用名为captchaProducer;*/@Bean(name = "captchaProducer")public DefaultKaptcha getKaptchaBean() {DefaultKaptcha defaultKaptcha = new DefaultKaptcha();Properties properties = new Properties();//是否有边框 默认为true 我们可以自己设置yes,noproperties.setProperty("kaptcha.border", "yes");//边框颜色 默认为Color.BLACKproperties.setProperty("kaptcha.border.color", "105,179,90");//验证码文本字符颜色 默认为Color.BLACKproperties.setProperty("kaptcha.textproducer.font.color", "blue");//验证码图片宽度 默认为200properties.setProperty("kaptcha.image.width", "120");//验证码图片高度 默认为50properties.setProperty("kaptcha.image.height", "40");//验证码文本字符大小 默认为40properties.setProperty("kaptcha.textproducer.font.size", "32");//KAPTCHA_SESSION_KEYproperties.setProperty("kaptcha.session.key", "kaptchaCode");//验证码文本字符间距 默认为2properties.setProperty("kaptcha.textproducer.char.space", "4");//验证码文本字符长度 默认为5properties.setProperty("kaptcha.textproducer.char.length", "4");//验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)properties.setProperty("kaptcha.textproducer.font.names", "Arial,Courier");//验证码噪点颜色 默认为Color.BLACKproperties.setProperty("kaptcha.noise.color", "gray");Config config = new Config(properties);defaultKaptcha.setConfig(config);return defaultKaptcha;}
}

简单使用Katcha(简单运用,如果避免redis被刷库,可以自己加逻辑)

 @RequestMapping("/captcha/captchaImage")public void captchaImage(HttpServletResponse response){//1.生成验证码文本String text = producer.createText();Logger logger =Logger.getLogger(text);logger.info(text);//2.生成验证码图像,获取BufferedImage类型对象BufferedImage bufferedImage = producer.createImage(text);//3.把验证码内容存入redisredisTemplate.opsForValue().set(text,"",60*30,TimeUnit.SECONDS);response.setContentType("image/jpeg");try(ServletOutputStream out = response.getOutputStream();){ImageIO.write(bufferedImage,"jpg",out);}catch (Exception e){e.printStackTrace();}}

ImageIO这个类可以把生成的验证码BufferedImage对象转换成outputStream流对象,这里不用return 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/37419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker入门指南:构建、部署与管理容器化应用

Docker入门指南&#xff1a;构建、部署与管理容器化应用 引言 Docker&#xff0c;作为当今最流行的容器化平台之一&#xff0c;彻底改变了软件开发、部署与运维的格局。它通过轻量级、可移植的容器技术&#xff0c;让开发者能够在几乎任何地方以一致的环境运行应用程序&#…

Spring Boot结合FFmpeg实现视频会议系统视频流处理与优化

在构建高效稳定的视频会议系统时,实时视频流的处理和优化是开发者面临的核心挑战之一。这不仅仅是简单的视频数据传输,更涉及到一系列复杂的技术问题,需要我们深入分析和有效解决。 高并发与实时性要求: 视频会议系统通常需要支持多人同时进行视频通话,这就意味着系统需要…

基于SpringBoot网吧管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; Java精品实战案例《600套》 2025-2026年最值得选择的Java毕业设计选题大全&#xff1…

税务笔记()

文章目录 税务和发票的关系 其他国税总局地址发票查验地址会计学堂-税收分类编码地址 和会计相关打交道&#xff0c;肯定离不开税务知识&#xff0c;做个笔记吧。 首先&#xff0c;税务是个巨大的课题&#xff0c;一年也说不完&#xff0c;只是简单记录下方便了解即可。 税务和…

python基础语法 003-4 数据类型集合

1 集合 1.1 什么是集合 什么是集合&#xff1f;ANS:集合set是一个无序的不重复元素序列集合怎么表示&#xff1f;ANS: {} , 用逗号隔开打印元组类型&#xff0c;type()一个元素的集合怎么表示&#xff1f;&#xff1a;ANS:存储多种类型{"a", 1} """…

Spring Cloud Gateway3.x自定义Spring Cloud Loadbalancer负载均衡策略以及实现动态负载均衡策略的方案

目录 前言 1.原理分析 1.1 ReactiveLoadBalancerClientFilter源码分析 1.2 LoadBalancerClientFactory源码分析 2.代码实现 2.1 扩展原生RoundRobinLoadBalancer轮询策略 2.1.1 自定义实现RoundRobinLoadBalancer 2.1.2 配置自定义的RoundRobinLoadBalan…

【Python实战因果推断】7_元学习器2

目录 X-Learner X-Learner X-learner 在解释上要比前一个学习器复杂得多&#xff0c;但其实现却非常简单&#xff0c;所以如果你一开始不理解&#xff0c;也不用担心。X 学习器有两个阶段和一个倾向得分模型。第一个阶段与 T 学习器相同。首先&#xff0c;将样本分为治疗组和…

基于springboot实现家政服务平台管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现家政服务平台系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本家政服务平台就是在这样的大环境下诞生&#xff0c;其可以帮助管理…

国产AI编程助手一览

1.阿里-通义灵码 https://tongyi.aliyun.com/lingma 2.Baidu Comate https://comate.baidu.com/zh 3.豆包MarsCode: https://www.marscode.cn/home 4.腾讯云AI代码助手 https://cloud.tencent.com/product/acc 5.智普-CodeGeeX http://codegeex.ai/zh-CN 6.天工智码 …

Java项目之石头剪刀布

以下是石头剪刀布游戏的Java代码: import java.util.Random; import java.util.Scanner; public class RockPaperScissorsGame { enum Move { ROCK, PAPER, SCISSORS } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 游…

LeetCode刷题之HOT100之数组中的第K个最大元素

2024 6/29 今天天气很好啊&#xff0c;想爬山&#xff0c;奈何下午还有最后的一个汇报。做个题先 1、题目描述 2、算法分析 看到这个题我想到的就是: public int findKthLargest(int[] nums, int k) {Arrays.sort(nums);return nums[nums.length - k ];}哈哈&#xff0c;我提…

抖音矩阵云混剪系统源码 短视频矩阵营销系统V2(全开源版)

>>>系统简述&#xff1a; 抖音阵营销系统多平台多账号一站式管理&#xff0c;一键发布作品。智能标题&#xff0c;关键词优化&#xff0c;排名查询&#xff0c;混剪生成原创视频&#xff0c;账号分组&#xff0c;意向客户自动采集&#xff0c;智能回复&#xff0c;多…

模型预测控制:线性MPC

模型预测控制&#xff1a;线性MPC 模型预测控制&#xff08;Model Predictive Control, MPC&#xff09;是一种广泛应用于工业过程控制和自动驾驶等领域的先进控制技术。MPC通过在线解决优化问题来计算控制输入&#xff0c;从而实现系统的最优控制。本文将介绍线性MPC的系统模…

融资担保行业数字化转型探索与实践

融资担保行业数字化转型探索与实践 随着全球经济的快速发展和科技的不断进步&#xff0c;数字化转型已成为各行各业提升竞争力和实现可持续发展的必然选择。融资担保行业作为金融体系中的重要组成部分&#xff0c;也在积极探索和实践数字化转型&#xff0c;以更好地服务中小微企…

海外媒体发稿:2个必选媒体宣发套餐引爆影响力-华媒舍

本文旨在介绍2个必选媒体宣发套餐的特点及其如何引爆影响力。 在当今竞争激烈的媒体环境中&#xff0c;有效的宣传和推广策略对于企业和个人的成功至关重要。这就是为什么选择正确的宣发套餐成为了一个关键的决策。 2. 媒体宣发套餐概述 媒体宣发套餐是一种综合性的宣传方案&…

14 卡尔曼滤波及代码实现

文章目录 14 卡尔曼滤波及代码实现14.0 基本概念14.1 公式推导14.2 代码实现 14 卡尔曼滤波及代码实现 14.0 基本概念 卡尔曼滤波是一种利用线性系统状态方程&#xff0c;通过系统输入输出观测数据&#xff0c;对系统状态进行最优估计的算法。由于观测数据包括系统中的噪声和…

如何利用PHP实现爬虫监控

爬虫监控是一种用来跟踪目标网站内容变化的技术&#xff0c;通常用于网站内容更新或者数据采集。php作为一种优秀的开发语言&#xff0c;在实现爬虫监控方面也有着不俗的能力。本文将介绍如何利用php实现爬虫监控的常用方法。 设置爬取目标 在开始爬虫监控之前&#xff0c;需…

【Linux】服务器被work32病毒入侵CPU占用99%

文章目录 一、问题发现二、问题解决2.1 清楚病毒2.2 开启防火墙2.3 修改SSH端口2.4 仅使用凭据登录&#xff08;可选&#xff09; 一、问题发现 我的一台海外服务器&#xff0c;一直只运行一项服务&#xff08;你懂的&#xff09;&#xff0c;但是前不久我发现CPU占用99%。没在…

PTA:7-12 斐波那契数列

斐波那契数列 (FibonacciSequence)&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契 (LeonardoFibonacci) 以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样一个数列&#xff1a;1,1,2,3,5,8,13,21,⋯ 在数学上&#xff0c;斐…

如何用Go语言,实现基于宏系统的解释器?

目录 一、Go语言介绍二、什么是宏系统三、什么是解释器四、如何用Go语言实现一个基于宏系统的解释器&#xff1f; 一、Go语言介绍 Go语言&#xff0c;又称为Golang&#xff0c;是一种由谷歌公司开发并开源的编程语言。Go语言的设计目标是提高程序员的生产力&#xff0c;同时具…