三行代码生成验证码并转换成base64

本文介绍了如何使用Hutool库创建并生成图形验证码,包括写入文件、获取Base64编码,并在实际场景中将验证码与随机生成的密钥存储于Redis。通过实例展示了如何将验证码Base64编码返回给前端展示给用户输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 Hutool 工具类

import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.LineCaptcha;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.Console;
import sun.misc.BASE64Encoder;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * Created with IntelliJ IDEA.
 *
 * @Auther: zlf
 * @Date: 2021/04/26/22:40
 * @Description:
 */
public class CaptchaTest {

    public static void main(String[] args) throws IOException {
        //定义图形验证码的长和宽
        LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100);

        //图形验证码写出,可以写出到文件,也可以写出到流 写出至文件
//        lineCaptcha.write("d:/line.png");
//
//        String code = lineCaptcha.getCode();
//        System.out.println("验证码--- " + code);
//        //验证图形验证码的有效性,返回boolean值
//        boolean verify = lineCaptcha.verify("1234");
//        //重新生成验证码
//        lineCaptcha.createCode();
        // 手动转base64
//        File file = FileUtil.touch("d:/line.png");
//        FileInputStream inputFile = new FileInputStream(file);
//        byte[] buffer = new byte[(int)file.length()];
//        inputFile.read(buffer);
//        inputFile.close();
//        // base64
//        String encode = new BASE64Encoder().encode(buffer);
//        System.out.println(encode);
         // 使用 hutool 工具类
        String code  = lineCaptcha.getCode();
        String imageBase64 = lineCaptcha.getImageBase64();

        System.out.println(imageBase64);

    }
}

使用场景

当生成验证码后将验证码,以及随机生成的key,保存至redis(验证码作为value),将验证码的base64字符串返回给前端,显示在页面中,用户可以根据识别验证码输入。
<img src="https://img-blog.csdnimg.cn/2022010703440731903.png" />

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值