当前位置: 首页 > news >正文

Java使用Hutool工具类轻松生成验证码

一、效果展示

二、Hutool工具类实现验证码生成

2.1 引入依赖
<!--hutool工具包-->
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.15</version>
</dependency
2.2 简单实现方式
@GetMapping("/createCode")public void createCode(HttpServletResponse response) {// 创建剪切型验证码ShearCaptcha shearCaptcha = CaptchaUtil.createShearCaptcha(150, 50, 4, 3);// 设置响应头response.setContentType("image/jpeg");response.setHeader("Pragma", "no-cache");response.setHeader("Cache-Control", "no-cache");String uuidStr = UUID.randomUUID().toString().replace("-", "");response.setHeader("verifyCodeUuid", uuidStr);//使用redis
//        ValueOperations valueOperations = redisTemplate.opsForValue();
//        valueOperations.set("uuidCode", shearCaptcha.getCode());
//        valueOperations.get("uuidCode");uuidCode = shearCaptcha.getCode();// 将验证码图片转换为Base64编码ByteArrayOutputStream baos = new ByteArrayOutputStream();try {shearCaptcha.write(baos);byte[] imgBytes = baos.toByteArray();String imgBase64 = Base64.getEncoder().encodeToString(imgBytes);// 将Base64编码的图片数据作为响应内容response.getOutputStream().write(imgBase64.getBytes());} catch (IOException e) {throw new RuntimeException(e);} finally {try {baos.close();} catch (IOException e) {// 忽略关闭流的异常}}}

http://www.lryc.cn/news/369477.html

相关文章:

  • leetcode 40. 组合总和 II
  • AMEYA360代理品牌:ROHM开发出世界超小CMOS运算放大器,适用于智能手机和小型物联网设备等应用
  • 第1章Hello world 4/5:对比Rust/Java/C++创建和运行Hello world全过程:运行第一个程序
  • golang优雅代码【lock实现】
  • Dijkstra算法(迪杰斯特拉算法)
  • 用函数指针求a和b中的大者
  • 鸿蒙轻内核M核源码分析系列六 任务及任务调度(2)任务模块
  • 解决找不到MSVCR120.dll,无法执行代码
  • Linux iptables详解
  • Mac电脑arm64芯片Cocoapods 的 ffi 兼容问题
  • 如何提高逻辑性?(小妙招)
  • 2024050501-重学 Java 设计模式《实战命令模式》
  • 0104__Linux 中 nm 命令简介
  • Linux网络服务
  • Vue18-列表渲染
  • 【三维重建】增量SFM系统
  • PyTorch 维度变换-Tensor基本操作
  • spring 事务失效的几种场景
  • 45岁程序员独白:中年打工人出路在哪里?
  • 深度探讨:为何训练精度不高却在测试中表现优异?
  • 动态内存管理<C语言>
  • 第一百零二节 Java面向对象设计 - Java静态内部类
  • 给自己Linux搞个『回收站』,防止文件误删除
  • Springboot接收参数的21种方式
  • 打造出色开发者体验的十大原则
  • Vue3_对接腾讯云COS_大文件分片上传和下载
  • python免杀--base64加密(GG)
  • Python版与Java版城市天气信息爬取对比分析
  • CSS真题合集(二)
  • 长期出汗困扰你?可能是肾合出了问题