SpringBoot验证码整合

使用 SpringBoot + kaptcha 生成以及校验验证码 阅读详情
<!-- kaptcha验证码 -->
<dependency>
    <groupId>com.github.penggle</groupId>
    <artifactId>kaptcha</artifactId>
    <version>2.3.2</version>
</dependency>
@Component
public class KaptchaConfig {
    @Bean
    public DefaultKaptcha getDefaultKaptcha() {
        com.google.code.kaptcha.impl.DefaultKaptcha defaultKaptcha = new com.google.code.kaptcha.impl.DefaultKaptcha();

        Properties properties = new Properties();
        // 图片边框
        properties.setProperty("kaptcha.border", "no");
        // 边框颜色
        properties.setProperty("kaptcha.border.color", "105,179,90");
        // 字体颜色
        properties.setProperty("kaptcha.textproducer.font.color", "black");
        // 图片宽
        properties.setProperty("kaptcha.image.width", "110");
        // 图片高
        properties.setProperty("kaptcha.image.height", "40");
        // 字体大小
        properties.setProperty("kaptcha.textproducer.font.size", "30");
        //设置图片样式
        properties.setProperty("kaptcha.obscurificator.impl", "com.google.code.kaptcha.impl.WaterRipple");
        // session key
        properties.setProperty("kaptcha.session.key", "code");
        // 验证码长度
        properties.setProperty("kaptcha.textproducer.char.length", "6");
        // 字体
        properties.setProperty("kaptcha.textproducer.font.names", "黑体,宋体,楷体,微软雅黑");
        //干扰线颜色
        properties.setProperty("kaptcha.noise.color","black");

        properties.setProperty("kaptcha.textproducer.char.string","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");

        Config config = new Config(properties);

        defaultKaptcha.setConfig(config);

        return defaultKaptcha;
    }
}

控制层


@Slf4j
@Controller
public class KaptchaController {

    @Autowired
    DefaultKaptcha defaultKaptcha;

    @RequestMapping("/defaultKaptcha")
    public void defaultKaptcha(HttpSession session, HttpServletResponse response)
            throws Exception {
        byte[] captchaChallengeAsJpeg = null;
        ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
        try {
            // 生产验证码字符串并保存到session中
            String createText = defaultKaptcha.createText();
            session.setAttribute("rightCode", createText);
            // 使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中
            BufferedImage challenge = defaultKaptcha.createImage(createText);
            ImageIO.write(challenge, "jpg", jpegOutputStream);
        } catch (IllegalArgumentException e) {
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
            return;
        }

        // 定义response输出类型为image/jpeg类型,使用response输出流输出图片的byte数组
        captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
        response.setHeader("Cache-Control", "no-store");
        response.setHeader("Pragma", "no-cache");
        response.setDateHeader("Expires", 0);
        response.setContentType("image/jpeg");
        ServletOutputStream responseOutputStream = response.getOutputStream();
        responseOutputStream.write(captchaChallengeAsJpeg);
        responseOutputStream.flush();
        responseOutputStream.close();
    }

}

	<input type="text" id="tryCode" name="tryCode" value="" placeholder="验证码" autocomplete="off" ><img onclick="this.src='/defaultKaptcha?d='+new Date()*1" style="margin-right: 12px;" th:src="@{/defaultKaptcha}" alt="点击更换" >
	
String rightCode = (String) session.getAttribute("rightCode");
if (StringUtils.isNotBlank(tryCode) &&rightCode.equals(tryCode1){
	//登录逻辑   
}
05-若依使用AJ-captcha验证 若依官方文档-集成aj-captcha若依vue版本的验证码用了数学运算,还得手工输入计算结果。看了官方文档,改成了目前比较流行的拖动滑块方式。若依官方引入的是1.2.7版本。我选择了目前最常用的1.3.0版本。 ...... 阅读详情

相关推荐

Spring Boot 验证码框架 - CAPTCHA

CAPTCHA 查看 Github 仓库 | 查看 Gitee 仓库 简介 人机识别与验证码是后端开发中保护接口最常见的方式之一,而此类代码往往会与业务代码耦合带来项目可维护性变差。 CAPTCHA 是一个基于 Spring Boot 的验证码框架,它通过 AOP 的方式完成包含验证码生成、发送、存储等验证码相关业务,以避免与业务代码耦合。 开发者可以轻松地通过不同组件的组合来完成验证业务,同时可以进行自定义实现以应对自身的业务需求(例如邮箱验证码、短信验证码)。 代码示例 导入 Maven 依赖 <

Hansin's Blog 2627

【springboot系列】springboot实现图片验证码captcha

使用 1、导入依赖 在maven仓库中查找,发现只有这个依赖,所以直接复制这个即可 <!--easy-captcha 验证码--> <dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</artifactId> <version>1.6.2&l

Think_and_work的博客 2270

springboot-整合vue和图片验证码

springboot-整合vue和图片验证码 文章目录springboot-整合vue和图片验证码1.配置1.1pom1.2Kaptcha的初始化1.3Kaptcha生产验证码1.4vue前端代码2.测试2.1本地web测试2.2验证码的刷新 完整代码下载链接: https://github.com/2010yhh/springBoot-demos/tree/master/springboot-s...

2010yhh 6478

spring-boot-starter-captcha 更换自己项目的验证码

【代码】spring-boot-starter-captcha 更换自己项目的验证码。

qq_32676325的博客 1131

SpringBoot3整合Hutool-captcha实现图形验证码

SrpingBoot3整合Hutool 图形验证码(Hutool-captcha),对验证码的实现,提供:线段干扰验证码、圆圈干扰验证码、扭曲干扰验证码以及自定义验证码。提供了完整的额示例代码

Harry的博客 1362

SpringBoot整合腾讯云新一代行为验证码

通过Spring Boot整合腾讯云的验证码产品,提供腾讯云滑块验证码,文字验证码,无感验证码等等。提供使用的全套代码。前端可用vue,react都行,这里提供最原始的html代码可以随意更改。

w13966597931的博客 1336

springboot整合cage 验证码

springboot整合cage 验证码 1. 例子下载github地址 由于代码非常简单,提供一个github下载地址,只有java文件。 https://github.com/smile-yan/example-cage-captcha 2. cage jar包下载地址 推荐使用maven,如果需要下载.jar,也可以在这个maven地址下载: https://mvnrepository.co...

Smileyan's blog 1万+

五子棋AI算法第一篇-我对谷歌Alphago的看法

最近Google宣布他们的围棋AI以5:0的战绩打败欧洲围棋三冠王。我一直对人工智能比较感兴趣,正好趁年前空闲的几天用JS写了一个五子棋的AI。其实很久以前就用自创的算法写过一个JAVA版的五子棋AI,不过棋力很不理想。这次用的是JS写的,所以无论任何平台上只要能打开网页的都可以玩。google爆出这个新闻之后,很多人觉得这是不是意味着电脑智商已经在人类之上了,围棋已经没有意义了之类的。甚至觉得这是

言川的博客 2万+

springboot整合kaptcha验证码

springboot整合kaptcha验证码 前言: 朋友介绍登录的时候用的kaptcha验证码进行验证,在网上找了一些资料实践验证码 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程...

Jude的博客 340

[小技巧] 如何复制知乎电子书中的文字和图片

文章目录一、背景二、复制文字1.最简单的方法(适合短小文字)2. 进阶方法(适合大段文字)三、复制图片四、注意事项 一、背景 有时候希望从书中摘录一部分文字作为笔记,但是知乎电子书阅读时候是禁止copy的,要么手打,要么OCR,给学习带来了一些不便。 审查元素后发现,知乎电子书是把文字分成一段一段的,试图F12直接copy不太方便。 本问将以谷歌Chrome浏览器为例,给出复制小技巧。 二、复制文字 1.最简单的方法(适合短小文字) 选中你需要的文字,左键单击不放,直接拖到地址栏。 然后可以从地址栏中

江南蜡笔小新 9248

Power Automate Desktop实战:一键自动登录Chrome网站

本文详细介绍了如何使用Power Automate Desktop实现Chrome网站的一键自动登录,提升工作效率。从环境准备、基础配置到高级技巧与异常处理,全面解析自动化登录流程的构建与优化,特别适合需要频繁登录多个系统的用户。

weixin_29231725的博客 467

Spring Boot 整合 Spring Security(配置验证码)

Spring Boot 整合 Spring Security ,配置验证码。 1 创建工程 创建 Spring Boot 项目 spring-boot-springsecurity-verifycode ,添加 Web/Spring Security 依赖,如下: 最终的依赖如下: <dependencies> <dependency> <...

程序员35 1187

【东华大学oj】找到最大数(一维数组->中等)

一天,老师布置了一个作业,要求对一串数字各不相同的数字串进行排序,大的在前,小的在后。接着,我从数字串中的第二个数字开始往后找,找到最大的一个,然后与第二个数字交换,这样的话我就能够确定排序后数字串中的第二个数字;明明研究发现,他的这个想法中最重要的一环就是在一串数字中找到最大的那个,然后与第一个数字交换,可是明明毕竟刚刚开始学习程序设计不久,无法写出较复杂的程序,所以明明想让你这位程序设计专家帮他的忙,帮助他把这段核心程序写出来,然后明明只需模仿着写就可以了。时间限制: 1S类别: 一维数组->中等。

的博客 525

SpringBoot整合Kaptcha验证码

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

wildcat-的博客 854

ChatBI告别“NL2SQL依赖症”!从准确率50%到90%,3大技术路线+4个企业案例拆解核心玩法

摘要: ChatBI通过自然语言交互实现数据民主化,其核心是“语义理解+数据执行+知识沉淀”的全链路能力,而非单一的NL2SQL技术。行业采用三大技术路线提升准确率:专有知识库(提升30%)、指标标签语义层(准确率85%)、JSON中间层(多轮对话提升25%)。数据执行方案包括NL2SQL、NL2API等,需结合场景选择。企业落地需解决四大痛点:跨表查询准确率低(引入拓扑图)、模糊查询(用户干预机制)、响应慢(预计算缓存)、多轮对话(上下文池)。Spring AI Alibaba提供轻量级集成方案,助力企业

weixin_52610848的博客 1656

07 Zabbix 微信告警

Zabbix 微信告警 1.注册企业微信 企业微信注册地址:https://work.weixin.qq.com 2.进入企业微信后台管理 2.1 添加微信成员 2.2创建应用 2.3 获取四项数据 (1)AgentID (2) Secret (3) 企业ID (4)部门ID 3.Zabbix Server配置 3.1确认脚本目录 # grep alertscripts /etc/zabbix/zabbix_server....

Jian Sun_的博客 1298

SpringBoot整合短信验证码

我相信大家的手机短信里面,有两类短信占据了绝大多数,一个是快递的取件码,另一个就是各种短信验证码。就像下面这样: 用大腿想一想都知道,这种短信验证码肯定是由第三方提供的服务。那么我们作为开发者和使用者,如何将短信验证码整合到我们项目中呢? 本期文章,将会整合腾讯云的短信服务,以手机号注册为例,手把手带你研究一下短信验证码。 腾讯云注册短信服务 首先第一步,我们需要前往腾讯云,进行注册短信服务、创建应用、创建签名、创建模块等程序。 https://cloud.tencent.com/ 完善认证信息 首先

学而时习之,不亦说乎?温故而知新,可以为师矣! 6798

基于自抗扰控制的虚拟同步发电机二次调频控制研究

摘要:本文针对高比例可再生能源并网导致的电力系统频率稳定性问题,提出基于自抗扰控制(ADRC)的虚拟同步发电机(VSG)二次调频控制策略。通过分析VSG工作原理和传统调频方法的不足,设计了非线性ADRC和线性ADRC两种控制器,详细阐述了参数整定方法。仿真结果表明,该策略能有效消除频率稳态偏差,提升系统抗扰能力,为分布式电源参与电网调频提供了新思路。 关键词:虚拟同步发电机;自抗扰控制;二次调频;频率调节;抗扰能力

huanghm88的专栏 244

Springboot整合kaptcha实现验证码

验证码的作用 防止恶意破解密码、刷票、论坛灌水、刷页。 有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,实际上使用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),我们利用比较简易的方式实现了这个功能。虽然登录麻烦一点,但是对网友的密码安全来说这个功能还是很有必要,也很重要。但我们还是 提醒大家要保护好自己的密码 ,尽量使用混杂了数字、字母、...

清欢 492

RPA与旅游与酒店行业自动化实战案例

1. 背景介绍 1.1 旅游与酒店行业的挑战 旅游与酒店行业是一个高度竞争的市场,企业需要不断提高服务质量、降低成本、提高效率以保持竞争力。在这个过程中,企业面临着诸多挑战,如客户需求多样化、市场变化快速、人力资源成本高昂等。为了应对这些挑战,企业需要寻求新的技术手段来提高运营效率。

AI天才研究院 615

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SpringBoot整合Kaptcha实现图形验证码

SpringBoot整合Kaptcha实现图形验证码

DaenCode的博客 952

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Springboot整合RabbitMQ实现发送验证码的功能

Springboot整合RabbitMQ小Demo 1. RabbitMQ的介绍 MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开 发中应用非常广泛。RabbitMQ官方地址:http://www.r...

weixin_43873712的博客 2644

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Springboot整合kaptcha验证码

1、添加kaptcha的依赖: <!-- kaptcha验证码 --> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> </dependency> 2、新建KaptchaConfig配置类 package .

一个保安的自由之路 578

学习SpringBoot整合验证码

1.背景介绍 验证码技术在现代互联网应用中具有广泛的应用,主要用于在网站登录、注册、提交表单等场景中进行用户身份验证。Spring Boot是一个用于构建新型Spring应用的快速开发框架,可以简化Spring应用的开发过程,提高开发效率。本文将介绍如何使用Spring Boot整合验证码技术,涵盖背景介绍、核心概念与联系、核心算法原理、具体操作步骤、数学模型公式、最佳实践、实际应用场景、工具和...

AI天才研究院 484

SpringBoot整合图形验证码和邮箱验证码进行注册

获取缓存中验证码, 有则判断是否60S内重复发送, 无则拼接验证码并写入缓存。层初步校验图形验证码是否正确, 正确之后再执行发送邮件操作。可以换成你自己的,也可以复制我的,具体代码在下面。获取IP地址的工具类如下, MD5使用的是。邮箱验证码在缓存中的Key格式为。为错误码枚举值,后面也会给出。把下面的一些配置改成你自己的。本期内容分享到此结束啦~

人生需要动态规划 学习需要贪心算法 742

springboot整合容联云发短信验证码

最近公司因业务需求安排了给我使用容联云的短信验证码功能,实现登录操作,因我前期没有认真读api 导致了很多不必要的错误。而且网上用springboot 整合容联云的方法我也没找到,然后现在自己整理一下,和大家分享一下。本人这里只分享代码如何编写不包括账号注册,如果使用免费注册,记得把自己的测试手机号添加到平台才可以接受短信。 1.首先,在自己的项目的pom文件中导入所需要的maven 依赖 &...

qq_42728912的博客 2023
上一篇: bat版的mysql服务开关
下一篇: SpringBoot使用kaptcha动态生成验证码
陈增林
博客等级 码龄10年 213粉丝 66原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈增林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值