Веб-приложение Java Создание пользователя, устранение слабых паролей

Я нахожусь в процессе создания веб-приложения Java, чтобы позволить пользователям создавать достаточно надежные учетные данные, я бы хотел, чтобы они не вводили слабые пароли. Я хотел бы следовать основным правилам: он должен содержать не менее восьми символов и не менее одной цифры и одного символа. Я был бы признателен за точку в правильном направлении, большое спасибо!


person Chance212    schedule 31.03.2016    source источник
comment
См. второй ответ этого stackoverflow.com/questions/3802192/ Надеюсь, это поможет   -  person Pradeepal Sudeshana    schedule 31.03.2016


Ответы (2)


Два решения:

1.) Вы можете использовать регулярное выражение для требований к паролю и сравнить пароль, введенный пользователем, с этим выражением. Если шаблон пароля соответствует регулярному выражению, вы можете позволить пользователю зарегистрироваться, иначе вы можете показать ошибку.

2.) Когда пользователь вводит пароль, вы можете вызвать функцию, которая проверит: a. пароль содержит хотя бы одну цифру. б. пароль содержит хотя бы один специальный символ. в. длина пароля, введенного пользователем, больше минимальной длины и т. д.

эта функция вернет true или false в зависимости от того, принят пароль или нет.

Надеюсь, это поможет вам.

person Alok Gupta    schedule 31.03.2016

Вы можете проверить введенный пользователем пароль с помощью этого java-кода,

public static boolean isValidPassword(String userEnteredPassword) {

    boolean atleastOneUpper = false;
    boolean atleastOneLower = false;
    boolean atleastOneDigit = false;

    if (userEnteredPassword.length() < 8) { // If its less then 8 characters, its automatically not valid
        return false;
    }

    for (int i = 0; i < userEnteredPassword.length(); i++) { // Lets iterate over only once. Saving time
        if (Character.isUpperCase(userEnteredPassword.charAt(i))) {
            atleastOneUpper = true;
        }
        else if (Character.isLowerCase(userEnteredPassword.charAt(i))) {
            atleastOneLower = true;
        }
        else if (Character.isDigit(userEnteredPassword.charAt(i))) {
            atleastOneDigit = true;
        }
    }

    return (atleastOneUpper && atleastOneLower && atleastOneDigit); // Return true IFF the userEnteredPassword is atleast eight characters long, has atleast one upper, lower and digit
}
person Vishal Gajera    schedule 31.03.2016