2014-01-17 71 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改編:

,直到你得到你想要的東西,例如,你可以繼續生成密碼。

相關問題