я наткнулся на некоторый код, который выглядит примерно так:Выполняет ли требование сложности пароля в случайно генерируемых паролях сделать их более безопасными?
function generatePassword() {
let password;
do {
password = generateRandomString();
} while (!checkPasswordComplexity(password));
return password;
}
Предположим generateRandomString()
возвращает истинно случайную строку нужного набора символов, и checkPasswordComplexity()
проверяет, что пароль содержит некоторое предопределенное минимальное количество заглавных/строчных букв/номера/специальные символы.
В основном он пытается сгенерировать случайный пароль, проверяет определенные требования сложности, если проверка не удалась, она пытается снова.
Первый вопрос:
Является ли это на самом деле более безопасным, чем просто возвращает первый результат generateRandomString
?
Второй вопрос:
Если это на самом деле является хорошей практикой, есть более эффективный (но безопасный) способ напрямую генерировать пароль, который удовлетворяет требованиям сложности?