Опубликован: 31.10.2024 21
Условие: Напишите функцию, которая будет генерировать надежный пароль заданного размера. Пароль обязательно должен содержать маленькую и большую буквы, цифру и какой-нибудь специальный символ.
Решение:
Для генерации случайного набора символов пароля рекомендуется использовать
вместо модуля random
модуль secrets
, который генерирует криптографически сильные
случайные числа.
Для определения алфавита (набора символов, из которых будет генерироваться пароль)
рекомендуется использовать модуль string
.
Модуль string
содержит строчные и прописные буквы (asii_letters
),
специальные символы (punctuation
), а также строку цифр от 0 до 9 (digits
).
import secrets
import string
def gen_password(pwd_length):
letters = string.ascii_letters
digits = string.digits
special_chars = string.punctuation
alphabet = letters + digits + special_chars
while True:
pwd = ''
for i in range(pwd_length):
pwd += ''.join(secrets.choice(alphabet))
if (any(char in special_chars for char in pwd) and
any(char in digits for char in pwd) and
any(char in letters.lower() for char in pwd) and
any(char in letters.upper() for char in pwd)):
break
return pwd
pwd_length = 8 # длина пароля
print(f"Пароль: {gen_password(pwd_length)}")
# Пароль: DxeB^\9z
Задача: Решение квадратного уравнения
Задача: Тренажер таблицы умножения
Задача: Наибольший числовой палиндром
Задача: Разложение числа на простые множители
Комментариев нет.