public static String generatePwd() {
// 生成指定长度(2)的大写字母
String upperCaseLetters = RandomStringUtils.random(2, 65, 90, true, true);
// 生成指定长度(2)的小写字母
String lowerCaseLetters = RandomStringUtils.random(2, 97, 122, true, true);
// 生成指定长度(2)的数字
String numbers = RandomStringUtils.randomNumeric(2);
// 生成指定长度(2)的特殊字符
//String specialChar = RandomStringUtils.random(2, 33, 47, false, false);
// 生成指定长度(2)的随机[a-z]字符串,包含大小写
String totalChars = RandomStringUtils.randomAlphanumeric(2);
String combinedChars = upperCaseLetters.concat(lowerCaseLetters)
.concat(numbers)
//.concat(specialChar)
.concat(totalChars);
List<Character> pwdChars = combinedChars.chars()
.mapToObj(c -> (char) c)
.collect(Collectors.toList());
Collections.shuffle(pwdChars);
return pwdChars.stream()
.collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
.toString();
}
拓展知识:
org.apache.commons.lang包下有一个RandomStringUtils类,其中有一个randomAlphanumeric(int length)函数,可以随机生成一个长度为length的字符串。
//产生5位长度的随机字符串,中文环境下是乱码
RandomStringUtils.random(5);
//使用指定的字符生成5位长度的随机字符串
RandomStringUtils.random(5, new char[]{'a','b','c','d','e','f', '1', '2', '3'});
//生成指定长度的字母和数字的随机组合字符串
RandomStringUtils.randomAlphanumeric(5);
//生成随机数字字符串
RandomStringUtils.randomNumeric(5);
//生成随机[a-z]字符串,包含大小写
RandomStringUtils.randomAlphabetic(5);
//生成从ASCII 32到126组成的随机字符串
RandomStringUtils.randomAscii(4)
Java generates random passwords, including uppercase and lowercase letters, numbers, special characters, etc.
Guess you like
Origin blog.csdn.net/u013282737/article/details/125968429
Recommended
Ranking