← Все вопросы
Как сделать генератор паролей на Python — мой первый полезный скрипт
6
Хочу сделать программу, которая генерирует случайный пароль нужной длины из букв, цифр и значков. Это реально для новичка? Не понимаю, откуда брать «все буквы и цифры» и как из них собрать случайную строку.
2 ответа
11
✓ Принятый ответ — помог автору
Это идеальный первый полезный проект, и он короче, чем кажется. В Python уже есть готовый набор символов в модуле string:
import random
import string
length = int(input('Длина пароля: '))
alphabet = string.ascii_letters + string.digits + '!@#$%^&*'
password = ''.join(random.choice(alphabet) for _ in range(length))
print(password)
Разбор:
string.ascii_letters— это все английские буквы (a-z, A-Z),string.digits— цифры. Складываем в одну строкуalphabet.random.choice(alphabet)выбирает один случайный символ.- Повторяем
lengthраз и склеиваем черезjoin.
Улучшения потом: гарантировать хотя бы одну цифру и один значок, или сделать выбор «с символами / без». Но для первой версии этого хватит.
5
Важный нюанс, если паролем реально будешь пользоваться: для настоящей безопасности лучше брать secrets.choice вместо random.choice — модуль secrets сделан как раз для паролей и токенов, его сложнее предсказать. Для учебного проекта random ок, но знать про secrets полезно.
Ваш ответ
, чтобы ответить на вопрос.