算术验证码&字母验证码
/**
* 生成验证码图片并返回给客户端
* @param key 验证码对应的key
* @param request HTTP请求对象
* @param response HTTP响应对象
* @throws Exception 异常处理
*/
@RequestMapping("/captcha")
public void captcha(@RequestParam String key, HttpServletRequest request, HttpServletResponse response) throws Exception {
// 指定验证码的长宽以及字符的个数
// SpecCaptcha captcha = new SpecCaptcha(135, 33, 5);
// captcha.setCharType(Captcha.TYPE_NUM_AND_UPPER);
// // 首先把验证码在后台保存一份,但是不能保存在session,可以存在redis,也可以存在后台的某个Map里面
// CaptureConfig.CAPTURE_MAP.put(key, captcha.text().toLowerCase());
// CaptchaUtil.out(captcha, request, response);
// 算术类型
ArithmeticCaptcha captcha = new ArithmeticCaptcha(135, 33);
captcha.setLen(4); // 几位数运算,默认是两位
captcha.getArithmeticString(); // 获取运算的公式:3+2=?
captcha.text(); // 获取运算的结果:5
// 将验证码文本转换为小写,并将其与对应的key存储在CAPTURE_MAP中
CaptureConfig.CAPTURE_MAP.put(key, captcha.text().toLowerCase());
// 将生成的验证码图片输出到客户端
CaptchaUtil.out(captcha, request, response);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南