第一步,引入依赖
<!--验证码依赖--><dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.6.2</version>
</dependency> <!-- 算数验证码使用 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.3.14</version>
<optional>true</optional>
</dependency> 注意:如果使用jdk17报错:java.lang.NullPointerException: Cannot invoke “javax.script.ScriptEngine.eval(String)“ because “engi 添加依赖可以解决 原文链接https://blog.csdn.net/u011410254/article/details/123735205 <!--解决图片验证码报错javax.script.ScriptEngine.eval(String)-->
<dependency>
<groupId>org.openjdk.nashorn</groupId>
<artifactId>nashorn-core</artifactId>
<version>15.3</version>
</dependency> //生成验证码controller层代码
@GetMapping("/captcha")
public ApiResult getCode() {
// 创建一个HashMap来存储验证码信息
Map<String, Object> map = new HashMap<>(2);
// 生成一个随机UUID
String uuid = UUID.randomUUID().toString();
// 创建一个用于存储验证码的key,格式为:login_tokens:uuid
String verifyKey = "login_tokens:" + uuid;
String code;
// 创建一个ArithmeticCaptcha实例,用于生成数学验证码
ArithmeticCaptcha captcha = new ArithmeticCaptcha(111, 36 , 2);
// 获取数学验证码的文本
code = captcha.text();
// 将验证码的uuid和图片保存到HashMap中
map.put("uuid", uuid);
map.put("img", captcha.toBase64());
// 将验证码信息保存到Redis中,设置过期时间为2分钟
redisService.setCacheObject(verifyKey, code, 2L, TimeUnit.MINUTES);
// 返回验证码信息
return ApiResult.success(map);
} 生成一串base64字符串 base64转图片地址:https://products.aspose.app/imaging/zh-hans/conversion/base64-to-image 标签:map,code,java,uuid,验证码,生成,captcha,运算 From: https://www.cnblogs.com/ZXDZXD/p/18196437