java实现随机验证码的多种方式

2022-05-12 21:45:58 浏览数 (1)

一、实践

1、使用Math下的random方法,生成纯数字

代码语言:javascript复制
1        // 从50到100的随机数
2        int j = (int) (Math.random() * 50)   50;
3        System.out.println(j);
4        // Random对象产生随机数
5        Random random = new Random();// 默认构造方法
6        // 获取0-100之间的int整数
7        int i2 = random.nextInt(1000000);
8        System.out.println(i2);  // 442565

2、 通过System.currentTimeMillis()取得需要的位数(纯数字位)

代码语言:javascript复制
 1        final long l = System.currentTimeMillis();
 2        // 获取0-100之间的随机整数
 3        System.currentTimeMillis();
 4        final int k1 = (int) (l % 100);
 5        // 获取0-10000之间的随机整数(4位)
 6        final int k2 = (int) (l % 10000);
 7        System.out.println(k2);  // 9493
 8        // 获取0-1000000之间的随机整数(6位)
 9        final int k3 = (int) (l % 1000000);
10        System.out.println(k3);   //239493

3、 通过long取得需要的位数(纯数字位)

代码语言:javascript复制
1        Random random = new Random();
2        // get random long value
3        long ll = random.nextLong();
4        System.out.println(Math.abs(ll % 1000000));//775416

4、得到固定位数的密码随机数,固定位数的验证码

代码语言:javascript复制
 1    /*
 2     * 得到固定位数的密码随机数,固定位数的验证码。
 3     * pwd_len 生成的密码总长度
 4     */
 5    public static String getRandomNum(int pwd_len) {
 6        //如果把所有数字和字母小写写入str,这儿为36;
 7        final int maxNum = 6;
 8        int i6;//生成的随机数
 9        int count=0;//生成密码的长度
10        char[] str= {'a','b','c','0','1','2'};//26个字母和10个数字
11
12
13        StringBuffer pwd=new StringBuffer();
14        Random r=new Random();
15        while(count<pwd_len) {
16            //生成随机数,取绝对值,防止生成负数
17            i6=Math.abs(r.nextInt(maxNum));//生成的最大数为36-1
18            if(i6>=0&&i6<str.length) {
19                pwd.append(str[i6]);
20                count  ;
21            }
22        }
23        return pwd.toString();
24    }

二、总结

以上就是java中java实现随机验证码的多种方式的内容,希望能够帮到大家

0 人点赞