登录页生成验证码图片

这里就以Springboot的Controller层接口为例来有演示接口

看下面的函数,这里的Kv底层维护的就是一个map,用来返回的:

@GetMapping("/oauth/captcha")
@ApiOperation(value = "获取验证码")
public Kv captcha() {
    SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);
    String verCode = specCaptcha.text().toLowerCase();
    String key = UUID.randomUUID().toString();
    // 存入redis并设置过期时间为30分钟
    bladeRedis.setEx(CacheNames.CAPTCHA_KEY + key, verCode, Duration.ofMinutes(30));
    // 将key和base64返回给前端
    return Kv.create().set("key", key).set("image", specCaptcha.toBase64());
}
  • SpecCaptcha,用于生成验证码,库Maven: com.github.whvcse:easy-captcha:1.6.2

库名

特点

easy-captcha

轻量级、支持多种类型、配置简单

Hutool-Captcha

功能类似,集成在Hutool工具包中

Kaptcha

老牌验证码库,但配置较复杂

AJ-Captcha

支持行为验证(滑动、点选等),适合高安全场景

  • UUID,通用唯一识别码,32个16进制字符,优点是不容易重复,每秒生成1亿个,100年后重复概率为50%,缺点是存储的空间比较大,示例:
123e4567-e89b-12d3-a456-426614174000
  • 验证码图片的Base64编码是一种将二进制图像数据转换为文本字符串的技术,主要用于前端的图片展示,不需要通过http请求,同时安全传输,简化开发流程,及时体积大了33%左右,适合小图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值