2014-01-17 3 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에서 적응 : 당신은 예를 들어, 당신이 원하는 것을 얻을 때까지

당신은 암호를 생성 유지할 수 있습니다.