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

运行结果:

相关推荐
mldong44 分钟前
引擎从不发一条消息:jeeflow 的两类扩展点与消息模块的分工
java·架构
君顾11 小时前
智慧零售实战指南:从技术架构到落地方案全解析
java·开发语言·零售
南棱笑笑生2 小时前
20260904实测给飞凌OK3576-C开发板刷入Rockchip原厂的IMG固件【使用飞凌的DTS】切换串口波特率为1.5Mbps
c语言·开发语言·rockchip
zhanghe6872 小时前
es的密码带有特殊字符,导出
java
平头哥技术团队2 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
pnoker2 小时前
IoT DC3 概念解读:把设备抽象成一套语义模板——位号、指令、事件与面向智能体的设备建模
java·人工智能·物联网·iot·dc3
乌萨奇也要立志学C++2 小时前
【洛谷】kmp算法
开发语言·算法
my_realmy2 小时前
Java SE 基础学习笔记(一):面向对象、继承多态、抽象接口与异常(JDK 8)
java·多线程·并发··生产者消费者模式
传奇开心果编程2 小时前
【Rust入门知识点学与练】第4课:条件判断 if / else
开发语言·学习·rust
m0_380743873 小时前
给 Claude API 调用补上超时重试和错误分类
开发语言·人工智能·php