编写一个函数,用于生成随机密码,入参为随机密码的长度,出参为生成的随机密码,要求生成的随机密码必须同时包含大写字母小写字母数字。
char[] c1 = {'0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
List<Character> list = new ArrayList<Character>();
if(length<3)
return "随机码长度必须大于等于3";
else{
Random random = new Random();
// 1.从0-9中取一个 下标值: 0-9
int index1 = random.nextInt(9);
list.add(c1[index1]);
//2.从A-Z中取一个 下标值:10-35
int index2 = 10+random.nextInt(26);
list.add(c1[index2]);
//3.从a-z中取一个 下标值:36-61
int index3 = 36+random.nextInt(26);
list.add(c1[index3]);
//4.任选剩余的全部下标
for(int i=0;i<length-3;i++){
int index4 = random.nextInt(62);
list.add(c1[index4]);
}
//5.打乱顺序
List<Integer> indexList = new ArrayList<Integer>();
while(indexList.size() < length){
//随机产生下标值
int index = random.nextInt(length);
if(!indexList.contains(index))
indexList.add(index);
}
//6.按随机产生的下标值,将随机码组成字符串
StringBuffer s = new StringBuffer();
for(int i=0;i<length;i++){
int index = indexList.get(i);
s.append(list.get(index));
}
return s.toString();
}
}
//生成随机码,参数为随机码长度,同时包含大小写字母和数字
char[] c1 = {'0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
List<Character> list = new ArrayList<Character>();
if(length<3)
return "随机码长度必须大于等于3";
else{
Random random = new Random();
// 1.从0-9中取一个 下标值: 0-9
int index1 = random.nextInt(9);
list.add(c1[index1]);
//2.从A-Z中取一个 下标值:10-35
int index2 = 10+random.nextInt(26);
list.add(c1[index2]);
//3.从a-z中取一个 下标值:36-61
int index3 = 36+random.nextInt(26);
list.add(c1[index3]);
//4.任选剩余的全部下标
for(int i=0;i<length-3;i++){
int index4 = random.nextInt(62);
list.add(c1[index4]);
}
//5.打乱顺序
List<Integer> indexList = new ArrayList<Integer>();
while(indexList.size() < length){
//随机产生下标值
int index = random.nextInt(length);
if(!indexList.contains(index))
indexList.add(index);
}
//6.按随机产生的下标值,将随机码组成字符串
StringBuffer s = new StringBuffer();
for(int i=0;i<length;i++){
int index = indexList.get(i);
s.append(list.get(index));
}
return s.toString();
}
}