项目简介
本项目是基于Spring Boot框架开发的图形验证码生成系统,能生成多种类型的验证码,如静态图片验证码、GIF动画验证码、中文验证码和算术验证码。该系统可用于Java Web和JavaSE项目,且针对Spring Boot 3和JDK 17做了优化。
项目的主要特性和功能
- 支持多种验证码类型,包括静态图片验证码、GIF动画验证码、中文验证码和算术验证码。
- 可自定义验证码的宽度、高度、长度、字体和颜色。
- 支持前后端分离项目,验证码能存储在Redis中。
- 支持将生成的验证码转换为Base64编码的字符串,便于在HTML中直接嵌入。
- 特别优化了对Spring Boot 3和JDK 17的支持。
安装使用步骤
假设用户已经下载了本项目的源码文件。
1. 导入项目
使用Gradle
在build.gradle
文件中添加以下依赖:
groovy
dependencies {
implementation 'top.knos:lead-captcha:0.0.2'
}
使用Maven
在pom.xml
文件中添加以下依赖:
xml
<dependencies>
<dependency>
<artifactId>lead-captcha</artifactId>
<version>0.0.2</version>
</dependency>
</dependencies>
2. 在Spring Boot项目中使用
生成验证码
在Spring Boot控制器中生成验证码并将其存储在session中: ```java @Controller public class CaptchaController {
@RequestMapping("/captcha")
public void captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {
SessionCaptchaUtil.out(request, response);
}
}
前端HTML代码:
html
```
验证验证码
在登录控制器中验证用户输入的验证码: ```java @Controller public class LoginController {
@PostMapping("/login")
public JsonResult login(String username, String password, String verCode) {
if (!CaptchaUtil.ver(verCode, request)) {
CaptchaUtil.clear(request); // 清除session中的验证码
return JsonResult.error("验证码不正确");
}
}
} ```
3. 自定义验证码设置
设置验证码的宽高和位数
```java @Controller public class CaptchaController {
@RequestMapping("/captcha")
public void captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 设置位数
CaptchaUtil.out(5, request, response);
// 设置宽、高、位数
CaptchaUtil.out(130, 48, 5, request, response);
// 使用gif验证码
GifCaptcha gifCaptcha = new GifCaptcha(130, 48, 4);
CaptchaUtil.out(gifCaptcha, request, response);
}
} ```
4. 前后端分离项目的使用
在前后端分离项目中,验证码可以存储在Redis中: ```java @Controller public class CaptchaController { @Autowired private RedisUtil redisUtil;
@ResponseBody
@RequestMapping("/captcha")
public JsonResult captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {
SpecCaptcha pngCaptcha = new SpecCaptcha(130, 48, 5);
String verCode = pngCaptcha.text().toLowerCase();
String key = UUID.randomUUID().toString();
// 存入redis并设置过期时间为30分钟
redisUtil.setEx(key, verCode, 30, TimeUnit.MINUTES);
// 将key和base64返回给前端
return JsonResult.ok().put("key", key).put("image", pngCaptcha.toBase64());
}
@ResponseBody
@PostMapping("/login")
public JsonResult login(String username, String password, String verCode, String verKey) {
// 获取redis中的验证码
String redisCode = redisUtil.get(verKey);
// 判断验证码
if (verCode == null || !redisCode.equals(verCode.trim().toLowerCase())) {
return JsonResult.error("验证码不正确");
}
}
}
前端使用Ajax获取验证码:
html
``` 通过以上步骤,可在Spring Boot项目中集成并使用本图形验证码生成系统。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】