Требования к сложности пароля являются общими:
- длина > 8
- содержит хотя бы один символ верхнего регистра
- содержит хотя бы один символ нижнего регистра< /li>
содержит хотя бы одну цифру - содержит хотя бы один символ (например, @#$%)
Код: Выделить всё
import secrets
import string
def getRandomPasswordString(length):
alphabet = string.ascii_letters + string.digits + string.punctuation
password = ''.join(secrets.choice(alphabet) for i in range(length))
return password
=Y[&PE-XXP[//F, (отсутствует строчная буква)
^f~+""uwan]ny)b (отсутствует заглавная буква) )
AQvoMApuNFyRkJd (отсутствуют символы и цифры)
Я знаю, что могу сделать что-то подобное, чтобы гарантировать, что каждый выбираются типы символов:
Код: Выделить всё
import secrets
import string
def getRandomPasswordString(length):
alphabet = string.ascii_letters + string.digits + string.punctuation
password = secrets.choice(string.ascii_uppercase) + \
secrets.choice(string.ascii_lowercase) + \
secrets.choice(string.digits) + \
secrets.choice(string.punctuation) + \
''.join(secrets.choice(alphabet) for i in range(length-4))
return password
Поэтому я хотел бы узнать, существует ли какое-либо чистое, однострочное/более короткое решение для генерации необходимых паролей.
Заранее большое спасибо
Подробнее здесь: https://stackoverflow.com/questions/653 ... equirement