- 💂 个人网站:IT知识小屋
- 🤟 版权:本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
- 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
文章目录
- 简介
- 验证码形式
- 快速应用
- 高级特性
- 开源地址&使用手册
- 写在最后
简介
Happy-Captcha是一款基于JAVA实现的免费验证码工具,旨在花最短时间、用最少代码实现最丰富的验证码功能。它提供图片和动画2种呈现形式,支持多种形式的验证码(如:图片、文字、算术表达式),并提供丰富的API接口,支持用户自定义样式、宽高等参数,满足用户不同场景下的使用需求。
验证码形式
验证码支持内容包括:中文(收录3500个常用汉字),阿拉伯数字(09),中文数字(零至九),中文大写数字(零至玖),数字与字母混合(09-az-AZ),数字与小写字母混合(09-az),数字与大写字母混合(09-AZ),纯小写字母,纯大写字母,大小写字母混合以及运算表达式(阿拉伯数字运算表达式和中文运算表达式)等12种类型。
| CaptchaType | IMAGE | ANIMATION |
|---|---|---|
| CHINESE | ||
| NUMBER | ||
| NUMBER_ZH_CN | ||
| NUMBER_ZH_HK | ||
| DEFAULT | ||
| WORD | ||
| WORD_LOWER | ||
| WORD_UPPER | ||
| WORD_NUMBER_LOWER | ||
| WORD_NUMBER_UPPER | ||
| ARITHMETIC | ||
| ARITHMETIC_ZH |
快速应用
1、引入依赖
<dependency> <groupId>com.ramostear</groupId> <artifactId>Happy-Captcha</artifactId> <version>1.0.1</version> </dependency>2、生成验证码
对于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个)随机组合 |
| NUMBER | 0~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。如需更多类型优质项目推荐,请在文章后留言。