此方法是否保证生成一个随机密码,该密码至少包含一个数字,一个大写字母和一个小写字母?
org.apache.commons.lang.RandomStringUtils.randomAlphanumeric(10)
如果没有,这种方法生成10位数的密码有多安全和好,该密码必须包含至少一个数字,一个大写字母和一个小写字母?
org.apache.commons.lang.RandomStringUtils.randomAlphanumeric(7)+“a1R”;
感谢。
答案 0 :(得分:3)
javadoc没有说什么,所以没有理由它会返回一个至少有一个数字,小写和大写的字符串。
您可以继续生成密码,直到获得所需内容,例如:
String pass;
do {
pass = randomAlphanumeric(10);
} while (!pass.matches(".*(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*"));
正则表达式改编自this answer。