您当前的位置: 首页 > 

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【精品】好用的验证码工具类VerifyCodeUtils

梁云亮 发布时间:2020-10-16 21:05:30 ,浏览量:2

相关博客:

  • 基于Servlet的验证码技术
  • 基于Java11的Base64工具类
验证码工具类

import javax.imageio.ImageIO;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Arrays;
import java.util.Random;

public class VerifyCodeUtil {
    //使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符
    public static final String VERIFY_CODES = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
    private static Random random = new Random();

    /**
     * 使用系统默认字符源生成验证码
     *
     * @param verifySize 验证码长度
     * @return
     */
    public static String generateVerifyCode(int verifySize) {
        return generateVerifyCode(verifySize, VERIFY_CODES);
    }

    /**
     * 使用指定源生成验证码
     *
     * @param verifySize 验证码长度
     * @param sources    验证码字符源
     * @return
     */
    public static String generateVerifyCode(int verifySize, String sources) {
        if (sources == null || sources.length() == 0) {
            sources = VERIFY_CODES;
        }
        int codesLen = sources.length();
        Random rand = new Random(System.currentTimeMillis());
        StringBuilder verifyCode = new StringBuilder(verifySize);
        for (int i = 0; i 
示例二:前后分离(★★★★★)

在这里插入图片描述

    @RequestMapping("/getVerifyCode")
    public Result getVerifyCode(HttpSession session, HttpServletResponse response) throws IOException {
        String key = UUID.randomUUID().toString();

        //生成验证码,5位
        String code = VerifyCodeUtil.generateVerifyCode(5);
        //生成验证码对应的图片
        String base64Img = VerifyCodeUtil.outputImage(100, 40, code);

        //将生成的数据保存在Redis中
        redisUtil.hset(GlobalConstant.VERIFYCODE_KEY, key, code);

        return ResultUtil.success(200, Map.of("key", key, "code", code, "img", base64Img));
    }

在这里插入图片描述

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0430s