java实现随机生成验证码

java 复制代码
import java.util.concurrent.ThreadLocalRandom;

/*
生成验证码的工具
可动态配置验证码长度
 */
public class CodeUtils {
    public static void main(String[] args) {
        //随机生成5个长度为4的验证码
        for (int i = 0; i < 5; i++) {
            System.out.println(CodeUtils.getCode(4));
        }
        for (int i = 0; i < 5; i++) {
            System.out.println(CodeUtils.getCode(6));
        }
    }
    public static String getCode(int len){
        //验证码生成范围
        String s = "0123456789abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        char[] c = s.toCharArray();
        StringBuffer str = new StringBuffer("");
        ThreadLocalRandom current = ThreadLocalRandom.current();
        for (int i = 0; i < len; i++) {
            char code = c[current.nextInt(0,s.length())];
            str.append(code);
        }
        return str.toString();
    }
}

运行结果:

相关推荐
java porter2 分钟前
一文深度解读原型模式
java·原型模式
液态不合群2 分钟前
Java中线程安全问题的原因和解决方案
java·数据库
之歆6 分钟前
RGA-检索增强生成(Retrieval-augmented Generation)
java·spring
萧鼎7 分钟前
深入解析 Python 的 Word 模板引擎:docxtpl 全面指南
开发语言·python·word
Chan169 分钟前
场景题:如何设计一个分布式ID
java·开发语言·spring boot·java-ee·intellij-idea
@TangXin12 分钟前
Jenkins-Pipeline语法示例
java·servlet·jenkins
chamu9914 分钟前
C++ 的可调用对象
开发语言·c++
tianyuanwo15 分钟前
Bash与Sh的诞生背景、底层原理及Linux多Shell解释器兼容性解析
linux·开发语言·bash
Geoking.24 分钟前
【设计模式】组合模式(Composite)详解
java·设计模式·组合模式
怦怦蓝25 分钟前
IDEA 项目打印日志全攻略:从基础使用到高级配置
java·开发语言·debug