项目简介
本项目是基于Java的图形验证码生成系统,支持生成静态图片验证码、GIF动画验证码、中文验证码和算术验证码等多种类型。可用于Java Web、JavaSE等项目,适配JDK 17及以上版本。
项目的主要特性和功能
- 多种验证码类型:支持生成静态图片验证码、GIF动画验证码、中文验证码和算术验证码。
- 自定义设置:可自定义验证码的宽度、高度、长度、字体和字符类型。
- 抗锯齿效果:生成的验证码图像具有抗锯齿效果,提升用户体验。
- 干扰元素:验证码图像包含干扰线、干扰圆等元素,增加安全性。
- 前后端分离支持:支持在前后端分离项目中使用,验证码可存储在Redis中。
- Base64编码输出:支持将生成的验证码图像转换为Base64编码的字符串。
安装使用步骤
假设用户已经下载了本项目的源码文件。
1. 引入依赖
Gradle方式
groovy
dependencies {
compile 'com.iqismart:easy-captcha:1.7.1'
}
Maven方式
xml
<dependencies>
<dependency>
<groupId>com.iqismart</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.7.1</version>
</dependency>
</dependencies>
直接下载JAR包
从这里下载easy-captcha-1.7.1.jar
,并在项目中引入。
2. 在SpringMVC中使用
```java @Controller public class CaptchaController {
@RequestMapping("/captcha")
public void captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {
CaptchaUtil.out(request, response);
}
}
前端HTML代码:
html
```
3. 在Servlet中使用
在web.xml
中配置Servlet:
xml
<web-app>
<servlet>
<servlet-name>CaptchaServlet</servlet-name>
<servlet-class>com.iqismart.captcha.servlet.CaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CaptchaServlet</servlet-name>
<url-pattern>/captcha</url-pattern>
</servlet-mapping>
</web-app>
前端HTML代码:
html
<img src="/captcha" width="130px" height="48px" />
4. 判断验证码是否正确
```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("验证码不正确");
}
}
} ```
5. 设置宽高和位数
```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);
}
} ```
6. 前后端分离项目的使用
```java @Controller public class CaptchaController { @Autowired private RedisUtil redisUtil;
@ResponseBody
@RequestMapping("/captcha")
public JsonResult captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {
SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);
String verCode = specCaptcha.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", specCaptcha.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
``` 通过以上步骤,可在Java项目中集成和使用本图形验证码生成器。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】