使用EasyCaptcha生成验证码

EasyCaptcha

# EasyCaptcha效果

算数类型:

验证码 验证码 验证码

英文字母:

验证码 验证码 验证码

中文类型:

验证码 验证码 验证码

GIF效果:

验证码 验证码 验证码

内置字体:

验证码 验证码 验证码

# 基本使用

# 依赖引入

<dependency>
    <groupId>com.pig4cloud.plugin</groupId>
    <artifactId>captcha-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>
1
2
3
4
5

# Controller层代码

在SpringBoot项目中一般生成图片后,转换成base64格式的字符串,前端直接在img标签的src设置返回的base64字符串即可展示图片,下面展示算数类型的验证码是如何生成的。

@GetMapping("/getCode")
public String getCode() {
    SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);
    String verCode = specCaptcha.text().toLowerCase();
    log.info("生成的验证码结果为:{},在项目中应该将结果保存到Redis中", verCode);

    // 将base64返回给前端
    return specCaptcha.toBase64();
}
1
2
3
4
5
6
7
8
9

base64在线转换工具:https://tool.chinaz.com/tools/imgtobase/

# 自定义验证码:类型、字体

CharType:验证码字符类型

类型 描述
TYPE_DEFAULT 数字和字母混合
TYPE_ONLY_NUMBER 纯数字
TYPE_ONLY_CHAR 纯字母
TYPE_ONLY_UPPER 纯大写字母
TYPE_ONLY_LOWER 纯小写字母
TYPE_NUM_AND_UPPER 数字和大写字母

Font:字体

字体 效果
Captcha.FONT_1 img
Captcha.FONT_2 img
Captcha.FONT_3 img
Captcha.FONT_4 img
Captcha.FONT_5 img
Captcha.FONT_6 img
Captcha.FONT_7 img
Captcha.FONT_8 img
Captcha.FONT_9 img
Captcha.FONT_10 img

代码

@GetMapping
public String getCode() throws IOException, FontFormatException {
    SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);
    String verCode = specCaptcha.text().toLowerCase();
    log.info("生成的验证码结果为:{},在项目中应该将结果保存到Redis中", verCode);
    // 设置字体
    specCaptcha.setFont(Captcha.FONT_1);  // 有默认字体,可以不用设置
    // 设置类型,纯数字、纯字母、字母数字混合
    specCaptcha.setCharType(Captcha.TYPE_ONLY_NUMBER);
    // 将base64返回给前端
    return specCaptcha.toBase64();
}
1
2
3
4
5
6
7
8
9
10
11
12

# 自定义验证码:数字计算验证码

@GetMapping
public String getCode() {
    ArithmeticCaptcha captcha = new ArithmeticCaptcha(130, 48);
    captcha.setLen(3);  // 几位数运算,默认是两位
    captcha.getArithmeticString();  // 获取运算的公式:3+2=?
    String code = captcha.text();// 获取运算的结果:5
    log.info("生成的验证码结果为:{},在项目中应该将结果保存到Redis中", code);
    // 将base64返回给前端
    return captcha.toBase64();
}
1
2
3
4
5
6
7
8
9
10
最近修改于: 2024/12/2 00:46:54
和宇宙温柔的关联
房东的猫