随机生成验证码格式及位数都可自定义。
Demo:随机五位,十位测试。
package com.crud1024.main;
import java.util.Random;
/*模拟生成验证码*/
public class ChickCode {
public static void main(String[] args) {
// 随机生成五位验证码
System.out.println(code(5));
// 随机生成10未验证码并包含数字加英文大小写
System.out.println(code(10, 3));
}
//验证码返回方法--默认数字加英文小写自定义返回位数
public static String code(int bit) {
String lattercode = "";
char[] all = (all(1) + all(2)).toCharArray();
Random random = new Random();
for (int i = 0; i < bit; i++) {
lattercode += all[random.nextInt(all.length)];
}
return lattercode;
}
/*自定义返回位数位数验证码返回方法--自定义返回位数,自定义验证码内容
*mode=1为仅数字
*mode=2为数字加英文小写
*mode=3为数字加英文大小写
* */
public static String code(int bit, int mode) {
String lattercode = "";
for (int i = 1; i <= mode; i++) {
lattercode += all(i);
}
char[] all = (lattercode).toCharArray();
lattercode = "";
Random random = new Random();
for (int i = 0; i < bit; i++) {
lattercode += all[random.nextInt(all.length)];
}
return lattercode;
}
/*
* 初始化格式
*
* */
public static String all(int mode) {
String lattercode = "";
switch (mode) {
// 1为全为数字
case 1:
for (int i = 48; i < 58; i++) {
lattercode += (char) i;
}
return lattercode;
// 2英文小写
case 2:
for (int i = 97; i < 97 + 26; i++) {
lattercode += (char) i;
}
return lattercode;
// 3为英文大写
case 3:
for (int i = 65; i < 65 + 26; i++) {
lattercode += (char) i;
}
return lattercode;
default:
return "格式出错!";
}
}
}