Happy Captcha是一款易于使用的Java验证码软件包,旨在花最短的时间,最少的代码量,实现Web站点的验证码功能,Happy Captcha完全遵循Apache 2.0开源许可协议,作者ramostear。
验证码效果图
可以通过设置.style(CaptchaStyle.IMG)
来设置展示为图片或者设置.style(CaptchaStyle.ANIM)
展示为动画。
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 | ![]() | ![]() |
安装
maven工程仅需引入相关依赖即可
<dependency>
<groupId>com.ramostear</groupId>
<artifactId>Happy-Captcha</artifactId>
<version>1.0.1</version>
</dependency>
使用
@GetMapping("/captcha")
@ApiOperation(value = "登录模块生成验证码接口")
public void happyCaptcha(HttpServletRequest request, HttpServletResponse response){
System.out.println("======生成一次验证码======");
HappyCaptcha.require(request,response).type(CaptchaType.NUMBER).build().finish();
}
只需要添加一行代码即可生成验证码图片,request和response是必须提供的参数。
生成的验证码图片
校验
对验证码进行的校验也是十分简单,也只需要几行代码就可解决。
@PostMapping("/verify")
public String verify(String code,HttpServletRequest request){
//Verification Captcha
boolean flag = HappyCaptcha.verification(request,code,true);
if(flag){
// 校验通过
}
}
清理
当验证码被使用后,可以通过HappyCaptcha类种的remove()方法将Session中存放的验证码清理掉,避免出现一次验证码多次使用的情况。
@GetMapping("/remove/captcha")
public void removeCaptcha(HttpServletRequest request){
HappyCaptcha.remove(request);
}
验证码类型
通过.type(CaptchaType.ARITHMETIC)
改变验证码类型。
值 | 说明 |
---|---|
DEFAULT | 数字、大小写字母随机组合 |
ARITHMETIC | 加、减、乘算数运算表达式 |
ARITHMETIC_ZH | 中文简体加、减、乘算数运算表达式描述 |
CHINESE | 常见汉字(3500个)随机组合 |
NUMBER | 0~9数字随机组合 |
NUMBER_ZH_CN | 中文数字(零至九)随机组合 |
NUMBER_ZH_HK | 中文繁体数字(零至玖)随机组合 |
WORD | 大小写字母随机组合 |
WORD_LOWER | 小写字母随机组合 |
WORD_UPPER | 大写字母随机组合 |
WORD_NUMBER_LOWER | 数字、小写字母随机组合 |
R | 大写字母随机组合 |
WORD_NUMBER_LOWER | 数字、小写字母随机组合 |
WORD_NUMBER_UPPER | 数字、大写字母随机组合 |