Напишите функцию, которая генерирует случайный пароль заданной длины. Пароль должен быть сформирован на основе пользовательских требований:
• Использовать ли цифры.• Использовать ли буквы верхнего и/или нижнего регистра.• Использовать ли специальные символы.➡️ Пример:
password = generate_password(length=12, use_digits=True, use_uppercase=True, use_lowercase=True, use_specials=False)
print(password)
# Пример вывода: A1b2C3d4E5f6
Решение задачи🔽
import random
import string
def generate_password(length, use_digits=True, use_uppercase=True, use_lowercase=True, use_specials=True):
if length < 1:
raise ValueError("Длина пароля должна быть больше 0")
# Формируем набор символов
character_pool = ""
if use_digits:
character_pool += string.digits
if use_uppercase:
character_pool += string.ascii_uppercase
if use_lowercase:
character_pool += string.ascii_lowercase
if use_specials:
character_pool += "!@#$%^&*()-_=+[]{}|;:,.<>?/"
if not character_pool:
raise ValueError("Нужно выбрать хотя бы один тип символов")
# Генерация пароля
return ''.join(random.choice(character_pool) for _ in range(length))
# Пример использования
password = generate_password(length=12, use_digits=True, use_uppercase=True, use_lowercase=True, use_specials=True)
print(password)