超级好用!一款基于JAVA实现的开源免费验证码系统,1行代码得到炫酷的验证码
个人网站:IT知识小屋 版权:本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦文章目录简介验证码形式快速应用高级特性开源地址使用手册写在最后简介Happy-Captcha是一款基于JAVA实现的免费验证码工具旨在花最短时间、用最少代码实现最丰富的验证码功能。它提供图片和动画2种呈现形式支持多种形式的验证码(如图片、文字、算术表达式)并提供丰富的API接口支持用户自定义样式、宽高等参数满足用户不同场景下的使用需求。验证码形式验证码支持内容包括中文(收录3500个常用汉字)阿拉伯数字(09)中文数字(零至九)中文大写数字(零至玖)数字与字母混合(09-az-AZ)数字与小写字母混合(09-az)数字与大写字母混合(09-AZ)纯小写字母纯大写字母大小写字母混合以及运算表达式(阿拉伯数字运算表达式和中文运算表达式)等12种类型。CaptchaTypeIMAGEANIMATIONCHINESENUMBERNUMBER_ZH_CNNUMBER_ZH_HKDEFAULTWORDWORD_LOWERWORD_UPPERWORD_NUMBER_LOWERWORD_NUMBER_UPPERARITHMETICARITHMETIC_ZH快速应用1、引入依赖dependency groupIdcom.ramostear/groupId artifactIdHappy-Captcha/artifactId version1.0.1/version /dependency2、生成验证码对于HappyCaptcha而言只有request和response是必须提供的参数其余参数都可以使用缺省值。在默认情况下HappyCaptcha生成的验证码以图片形式展现内容为09-az-A~Z的字符随机组合字符长度为5图片宽度为160高度为50字体为微软雅黑。在默认情况下你只需要书写一行代码即可生成漂亮的验证码图片,如下 Controller public class HappyCaptchaController{ GetMapping(/captcha) public void happyCaptcha(HttpServletRequest request,HttpServletResponse response){ HappyCaptcha.require(request,response).build().finish(); } }3、校验如果在校验过程中需要忽略字母大小写第三个参数设置为true如果需要强校验则设置为false。Controller public class CaptchaController{ PostMapping(/verify) public String verify(String code,HttpServletRequest request){ //Verification Captcha boolean flag HappyCaptcha.verification(request,code,true); if(flag){ //Other operations... } } }4、清理当验证码被使用后你可以通过HappyCaptcha类中的remove()方法将Session中存放的验证码清理掉。下面是清理验证码的代码示例除HappyCaptcha提供的默认方法你也可以在需要操作的地方手动清理Session中存放的验证码HappyCaptcha验证码的Key为“happy-captcha”。Controller public class HappyCaptchaController{ GetMapping(/remove/captcha) public void removeCaptcha(HttpServletRequest request){ HappyCaptcha.remove(request); } }高级特性style()HappyCaptcha提供两种验证码展现形式图片和动画。默认的展现形式为图片可以通过style()方法修改默认值。style()方法的值由CaptchaStyle类提供可供选择的值有IMG和ANIM。style()使用示例如下HappyCaptcha.require(request,response) .style(CaptchaStyle.ANIM) .build().finish();type()HappyCaptcha一共提供了12种验证码类型你可以自由选择其中的一种类型作为验证码的内容形式。默认情况下验证码使用数字和大小写字母的混合形式。验证码类型值由CaptchaType类提供内容如下表值说明DEFAULT数字、大小写字母随机组合ARITHMETIC加、减、乘算数运算表达式ARITHMETIC_ZH中文简体加、减、乘算数运算表达式描述CHINESE常见汉字3500个随机组合NUMBER0~9数字随机组合NUMBER_ZH_CN中文数字零至九随机组合NUMBER_ZH_HK中文繁体数字零至玖随机组合WORD大小写字母随机组合WORD_LOWER小写字母随机组合WORD_UPPER大写字母随机组合WORD_NUMBER_LOWER数字、小写字母随机组合WORD_NUMBER_UPPER数字、大写字母随机组合HappyCaptcha.require(request,response) .type(CaptchaType.CHINESE) .build().finish();length()用于设置验证码字符长度默认情况下缺省值为5。你可以通过以下方式对验证码字符长度进行控制HappyCaptcha.require(request,response) .length(6) .build().finish();width()width()方法可对验证码图片的宽度进行调节默认的缺省值为160。使用方式如下HappyCaptcha.require(request,response) .width(180) .build().finish();height()同width()方法一样height()方法用于设置验证码图片的高度默认缺省值为50。使用方式如下HappyCaptcha.require(request,response) .height(60) .build().finish();font()如果你想改变验证码的字体可通过font()方法进行设置默认缺省字体为微软雅黑。HappyCaptcha内置了四种字体可以通过Fonts类进行调用。HappyCaptcha.require(request,response) .font(Fonts.getInstance().zhFont()) .build().finish();链式调用HappyCaptcha支持链式调用可同时对验证码的多个属性进行设置。例如GetMapping(/captcha) public void captcha(HttpServletRequest req,HttpServletResponse res){ HappyCaptcha.require(req,res) .style(CaptchaStyle.ANIM) //设置展现样式为动画 .type(CaptchaType.CHINESE) //设置验证码内容为汉字 .length(6) //设置字符长度为6 .width(220) //设置动画宽度为220 .height(80) //设置动画高度为80 .font(Fonts.getInstance().zhFont()) //设置汉字的字体 .build().finish(); //生成并输出验证码 }开源地址使用手册点击下方的【IT学习日记】回复【资源】领取如果这篇文章对您有帮助请一定帮我点个“关注”和“点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。写在最后1000优质开源项目更新进度266/1000。如需更多类型优质项目推荐请在文章后留言。

相关新闻

【2026年】大语言模型优化暖通AI节能调度

【2026年】大语言模型优化暖通AI节能调度

实验室暖通系统能耗高,传统的定时开关、人工调参很难做到精细节能。大语言模型能读数据、能写策略,正在给暖通节能调度带来新思路。一、大模型在暖通里怎么用1.1 负荷预测更准大模型结合历史能耗、天气、实验排期等数据,预测下一时段通风与空…

2026/10/24 9:38:10 阅读更多 →
GB28181协议与EasyCVR在智慧农场监控中的应用

GB28181协议与EasyCVR在智慧农场监控中的应用

1. 智慧农场监管可视化方案概述在现代化农业生产中,视频监控技术正发挥着越来越重要的作用。基于国标GB28181协议的EasyCVR视频监控平台,为智慧农场提供了一套完整的可视化监管解决方案。这套系统不仅能够实现农场各个区域的实时监控,还能通过…

2026/10/24 3:24:39 阅读更多 →
ansible 实例 -- 用于 Linux 文件系统的操作 -- 如何使用 Ansible 任务在远程系统上重命名文件或目录?

ansible 实例 -- 用于 Linux 文件系统的操作 -- 如何使用 Ansible 任务在远程系统上重命名文件或目录?

如何使用 Ansible 重命名文件/目录。 首先,让我澄清一下,我想提出一个仅使用 Ansible 原生模块的解决方案,因此不使用 shell 模块来调用 Unix 工具 mv。 今天我们来谈谈 Ansible 的两个模块 copy 和 file。 全名分别是 ansible.builtin.copy 和 ansible.builtin.file,它…

2026/10/23 11:35:05 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/24 11:09:31 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/23 15:39:08 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/23 10:53:32 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/24 9:46:55 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/24 3:09:39 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/23 19:30:19 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/23 13:55:34 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/24 1:12:31 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/23 9:25:46 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/24 9:15:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/24 11:09:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/24 5:28:28 阅读更多 →