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();
    }
}

运行结果:

相关推荐
聪明的笨猪猪5 小时前
Java 工程案例:AI 生成 @Async 异步线程池踩坑
java·经验分享·面试·ai编程
学长毕设6 小时前
基于SpringBoot公务员考试交流平台-附源码
java·spring boot·后端
SL_staff8 小时前
私有化低代码:面向强监管行业的可控数字化实践
java·低代码
饮水桶_T8 小时前
JAVA IO流笔记
开发语言·数据结构·算法
三翼鸟数字化技术团队9 小时前
高性能存储引擎RocksDB:原理与Java生态实践
java
SL_staff9 小时前
JVS-APS有限产能建模的七个刚性支点:面向产线真实约束的技术实现解析
java·开源·全栈
特立独行的猫A9 小时前
少 3 个环节、少 1 次 ABI、少 3500 行代码:cj-tauri 与 Ionic/Capacitor 的鸿蒙桥接机制对比
java·后端·python
学长毕设9 小时前
基于SpringBoot的高校后勤报修管理系统-附源码
java·spring boot·后端
特立独行的猫A9 小时前
cj-tauri vs Rust/Tauri 同款播放器实测:编译 21 秒 vs 11 分钟,磁盘 12 MB vs 1.2 GB
java·后端·python
杨凯凡10 小时前
Spring AI RAG 实战:向量检索、租户过滤、引用溯源与防幻觉边界
java·人工智能·spring