2014-01-17 40 views
0

此方法是否可以保证生成一个至少包含一个数字,一个大写字母和一个小写字母的随机密码?RandomStringUtils.random字母数字担保编号和字母表

org.apache.commons.lang.RandomStringUtils.randomAlphanumeric(10)

如果没有,安全性好这个方法是如何产生的,其必须包含至少一个数字10位数的密码,一个大写字母和一个小写字母?

org.apache.commons.lang.RandomStringUtils.randomAlphanumeric(7)+“a1R”;

谢谢。

回答

3

javadoc不会说任何东西,所以没有理由返回一个至少包含一个数字,小写字母和大写字母的字符串。

String pass; 
do { 
    pass = randomAlphanumeric(10); 
} while (!pass.matches(".*(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*")); 

正则表达式是由this answer改编:

,直到你得到你想要的东西,例如,你可以继续生成密码。

相关问题