spring boot 生成图片验证码

14 篇文章 0 订阅

第一种方法:使用hutool生成图片验证码:

  1.1 引入jar包:

<!-- 糊涂工具包 -->
 <dependency>
     <groupId>cn.hutool</groupId>
     <artifactId>hutool-all</artifactId>
     <version>4.1.13</version>
 </dependency>

  1.2 在代码中生成图片验证码,以base64的方式传给前端,

// 生成图片验证码类
CircleCaptcha captcha = CaptchaUtil.createCircleCaptcha(111, 36);
 // 获取图片验证码上的字符串(小写)
 String lowerCaseCode = captcha.getCode().toLowerCase();
 // 转化为base64f给前端
 String imageBase = captcha.getImageBase64();
 // 将字符串用md5加密当作key保存到redis中
 String md5Image = DigestUtils.md5DigestAsHex(lowerCaseCode.getBytes());
 // 保存到redis中,这里不做操作

 // 组装数据返回前端
 hashMap.put("imageBase", imageBase);
 // 下次前端携带此参数我们从redis中查询
 hashMap.put("md5Image", md5Image);
 // 此数据在此只是展示,不要返回给前端
 hashMap.put("lowerCaseCode", lowerCaseCode);

  1.3 结果:
在这里插入图片描述

在这里插入图片描述

  将base64转换为图片的网站,注意:前面需要加:data:image/png;base64, 逗号也是,地址
在这里插入图片描述
  参考文章:文章地址

第二种方法:使用EasyCaptcha来生成图片验证码,官网地址:地址

  2.1 引入jar包

<!-- 图片验证码 -->
 <dependency>
     <groupId>com.github.whvcse</groupId>
     <artifactId>easy-captcha</artifactId>
     <version>1.6.2</version>
 </dependency>

  2.2 在代码中的应用

            // 三个参数分别为宽、高、位数
            //  SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5); 数字验证码
            ChineseCaptcha  specCaptcha = new ChineseCaptcha(130, 48); // 汉字验证码
            // 设置字体
            // specCaptcha.setFont(new Font("Verdana", Font.PLAIN, 32));  // 有默认字体,可以不用设置

            // 设置类型,纯数字、纯字母、字母数字混合
            specCaptcha.setCharType(Captcha.TYPE_ONLY_NUMBER);

            String verCode = specCaptcha.text().toLowerCase();
            String codeBase = specCaptcha.toBase64();
            hashMap.put("verCode", verCode);
            hashMap.put("codeBase", codeBase);

  2.3 结果:
在这里插入图片描述
在这里插入图片描述
hutool官网:地址

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值