import java.util.Random;
public class RandomPassword {
/**
* 生成随机密码
* @param passLength 生成的密码的总长度
* @return 密码的字符串
*/
public static String getRandomPass(int passLength){
// 定义二维数组,确定随机密码的取值范围是0-9;a-z;A-Z;
char [][] range=new char[3][2];
range[0][0]='0';
range[0][1]='9';
range[1][0]='a';
range[1][1]='z';
range[2][0]='A';
range[2][1]='Z';
// range[3][0]='!';
// range[3][1]='/';
int rangeLength=range.length;
// 返回值
String password="";
// 密码生成长度
// 随机值
int randNum=0;
for (int i = 0; i < passLength; i++) {
Random ran=new Random();
// 确定符合密码的复杂性要求
if(i<rangeLength){
randNum=i;
}else{
// 生成一个 0 到 range.length-1 的随机数
randNum=Math.abs(ran.nextInt(rangeLength));
}
password+=randChar(range[randNum][0], range[randNum][1]);
}
System.out.println("生成的"+passLength+"位密码是:"+password);
return password;
}
/**
* 生成随机字符或数字
* @param rangeA 指定起始值
* @param rangeB 指定结束值
* @return 返回一个随机字符 范围从0-9 ;a-z;A-Z
*/
public static String randChar(char rangeA ,char rangeB){
return ""+(char)(rangeA+Math.random()*(rangeB-rangeA+1));
}
public static void main(String[] args) {
getRandomPass(8);
}
}