工具类
/**
* 生成任意长度 指定类型验证码
*
* @param length
* @param codeEnum
* @return
*/
public static String getVerifyCode(int length, VerifyCodeEnum codeEnum) {
StringBuffer code = new StringBuffer(SysConstants.DEFAULT_VERIFY_CODE);
switch (codeEnum) {
case NUMBER:
return getRandomNum(length).toString();
case MIX:
return getRandomMix(length);
case CHAR:
return getRandomChar(length);
default:
return code.toString();
}
}
/**
* 生成指定长度混合验证码
*
* @param length
* @return
*/
private static String getRandomMix(int length) {
StringBuffer code = new StringBuffer();
while (length-- > 0) {
code.append(new Random().nextInt(100) % 2 == 0 ? getRandomNum(1) : getRandomChar(1));
}
return code.toString();
}
/**
* 生成指定长度 字符验证码
*
* @param length
* @return
*/
private static String getRandomChar(int length) {
StringBuffer code = new StringBuffer();
while (length-- > 0) {
code.append((char) (new Random().nextInt(26) + 97));
}
return code.toString();
}
/**
* 随机生成指定长度数字验证码
*
* @return
*/
public static Integer getRandomNum(int length) {
return (int) ((Math.random() + 1) * Math.pow(10d, length - 1));
}
枚举类
public enum VerifyCodeEnum {
NUMBER("数字",0),CHAR("字母",1),MIX("数字字母混合",2);
public String name;
public int code;
VerifyCodeEnum(String name, int code) {
this.name=name;
this.code=code;
}
}