2014-01-17 2 views
0

Этот метод гарантирует создание случайного пароля, который будет иметь по крайней мере одно число, один заглавный алфавит и один строчный алфавит?RandomStringUtils.randomAlphanumeric гарантийный номер и алфавит

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.

Смежные вопросы