Создание генератора паролей на Python
Из этой статьи вы узнаете, как создать генератор паролей на Python и генерировать надежные пароли с помощью модулей secrets и random.
Создание генератора паролей на Python
Не нужно устанавливать ничего дополнительно, так как все библиотеки, которые нам понадобятся, уже встроены в Python.
Мы используем модуль argparse для анализа аргументов командной строки, модуль string для получения типов символов, таких как заглавные буквы, строчные буквы, цифры и специальные символы, а также модули random и secrets для генерации случайных данных.
Гайд Лёгкий генератор паролей на python.
Привет всем прОгрОмистам.
Сегодня я вас научу делать генератор паролей (для тех кто не умеет).
И так, преступим.
1.1) Для начала установите сам python , думаю сложностей не будет.
Пожалуйста, авторизуйтесь для просмотра ссылки.
1.2) Создайте файл с любым названием, для примера возьму gen .py (не забудьте .py в конце).
Преступим к самому коду .
2.1) Добавляем импорт .
import random
2.2) Даём всем знать чей генератор на районе и добавляем функцию повторения и лист .
print('Passwords Generator | ImGoose') #Даём знать что это и чьё это while True: #фунция повторения chars = list('+-/*!&$#?=@<>abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890') #Лист для составления пароля
2.3) Даём выбор длинны пароля и добавляем перемешку символов.
length = int(input('Length Password?'+ "\n")) #Выбор длинны пароля random.shuffle(chars) #Перемешка
2.4) Генерируем пароль и выводим его.
pasw = ''.join([random.choice(chars) for x in range(length)]) #Генерируем пароль print(f'Your Password - ') #Вывод
2.5) Радуемся!
Весь код:
import random print('Passwords Generator | ImGoose') while True: chars = list('+-/*!&$#?=w@<>abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890') length = int(input('Length Password?'+ "\n")) random.shuffle(chars) pasw = ''.join([random.choice(chars) for x in range(length)]) print(f'Your Password - ')
Весь цикл будет бесконечным т.к. мы прописали функцию while.
И это всё.
Счастья вам!
Начинающий
Статус Оффлайн Регистрация 17 Авг 2019 Сообщения 101 Реакции [?] 17 Поинты [?] 0
Лёгкий генератор пароля — лицо + клавиатура = wekK@#keq23uq2t2qgv5i3q3]m1
substandard rank
Забаненный
Статус Оффлайн Регистрация 21 Янв 2019 Сообщения 424 Реакции [?] 113 Поинты [?] 0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Можно так сделать:
from string import printable from random import choice while True: password = ''.join( [ choice(list( printable )) for x in range(int(input("Размер: "))) ] ) print("Пароль: <>".format(password.replace('\n', '@')))
Пример работы:
Пользователь
Статус Оффлайн Регистрация 26 Авг 2019 Сообщения 214 Реакции [?] 32 Поинты [?] 0
Можно и легче
You like kissing boys, don’t you?
Участник
Статус Оффлайн Регистрация 3 Апр 2019 Сообщения 822 Реакции [?] 243 Поинты [?] 6K
Забаненный
Статус Оффлайн Регистрация 2 Сен 2019 Сообщения 18 Реакции [?] 2 Поинты [?] 0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
функцию while.
Ор б**ть функция while, ты крутой просто
купить дизайн: yougame.biz/threads/155999
Дизайнер
Статус Оффлайн Регистрация 19 Сен 2018 Сообщения 995 Реакции [?] 1,471 Поинты [?] 4K
Ого, а может лучше придумать не генератор паролей, а хендлер.
Прописать в коде сид, и на основе логина и названия сервиса генерить пароль, который будет постоянным для данного сервиса+логина+сида.
Думаю что это будет намного лучше, ибо доверия к опен-сурс больше, чем к какому-нибудь Last-Pass’у.
Пользователь
Статус Оффлайн Регистрация 19 Авг 2020 Сообщения 194 Реакции [?] 40 Поинты [?] 0
Можно так сделать:
from string import printable from random import choice while True: password = ''.join( [ choice(list( printable )) for x in range(int(input("Размер: "))) ] ) print("Пароль: <>".format(password.replace('\n', '@')))
Пример работы:

а че так слабо, доводи уж дело до конца
import string, random print("Пароль: <>".format(''.join( [ random.choice(list( string.printable )) for x in range(int(input("Размер: "))) ] ).replace('\n', '@')))
кошмар, что тогда снился мне, оказался явью
Забаненный
Статус Оффлайн Регистрация 28 Янв 2019 Сообщения 477 Реакции [?] 113 Поинты [?] 0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

зачем изобретать велосипед палучаица
Олдфаг
Статус Оффлайн Регистрация 4 Янв 2020 Сообщения 2,940 Реакции [?] 1,225 Поинты [?] 11K
Ор б**ть функция while, ты крутой просто
переменная for
кошмар, что тогда снился мне, оказался явью
Забаненный
Статус Оффлайн Регистрация 28 Янв 2019 Сообщения 477 Реакции [?] 113 Поинты [?] 0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
переменная for
оператор def
Пользователь
Статус Оффлайн Регистрация 19 Май 2019 Сообщения 294 Реакции [?] 43 Поинты [?] 0
Можно так сделать:
from string import printable from random import choice while True: password = ''.join( [ choice(list( printable )) for x in range(int(input("Размер: "))) ] ) print("Пароль: <>".format(password.replace('\n', '@')))
Пример работы:

брось ты эти пробелы, не делай так
Пользователь
Статус Оффлайн Регистрация 22 Сен 2020 Сообщения 67 Реакции [?] 32 Поинты [?] 1K
Мне мозги выебали про функцию while, вы чё от меня хотели? Я программист хуев.
Забаненный
Статус Оффлайн Регистрация 2 Сен 2019 Сообщения 18 Реакции [?] 2 Поинты [?] 0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
переменная for
тут нет for
Олдфаг
Статус Оффлайн Регистрация 4 Янв 2020 Сообщения 2,940 Реакции [?] 1,225 Поинты [?] 11K
тут нет for
зачем ты ответил мне anime profile picture?
если ты не понял это была шутка
Начинающий
Статус Оффлайн Регистрация 31 Мар 2019 Сообщения 17 Реакции [?] 1 Поинты [?] 0
Решил переписать по нормальному, а не через while и заодно добавить выбор пользователю из каких символов будет состоять его пароль
import random list1 = list("AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890") list2 = list("#$%^&*():|/''AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz") list3 = list("#$%^&*():|/''AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890") n1 = int(input("1 symbols + numbers\n2 symbols + special characters\n3 special characters + symbols + numbers\n")) n2 = int(input('password length:\n')) password = "" if n1 == 1: for j in range(n2): password += random.choice(list1) print("\n" + password) if n1 == 2: for j in range(n2): password += random.choice(list2) print("\n" + password) if n1 == 3: for j in range(n2): password += random.choice(list3) print("\n" + password)
Как создать генератор паролей на Python
Узнайте, как создать простой и полезный генератор паролей на Python, используя стандартные библиотеки, всего за 3 шага!

Алексей Кодов
Автор статьи
23 июня 2023 в 18:51
Генератор паролей — это полезный инструмент, который помогает создать сложные и уникальные пароли для различных аккаунтов. В этой статье мы рассмотрим, как создать простой генератор паролей на Python, используя стандартные библиотеки.
Шаг 1: Импортировать необходимые модули
Для создания генератора паролей нам потребуются следующие модули:
- string : содержит все возможные символы, которые могут быть использованы в пароле (буквы, цифры, знаки препинания)
- random : для случайного выбора символов
import string import random
Шаг 2: Определить функцию для генерации пароля
Теперь определим функцию generate_password() , которая принимает длину пароля в качестве аргумента и возвращает сгенерированный пароль.
def generate_password(length): characters = string.ascii_letters + string.digits + string.punctuation password = ''.join(random.choice(characters) for _ in range(length)) return password
В этой функции мы объединяем все возможные символы в одну строку и затем случайно выбираем символы из этой строки для создания пароля.
Шаг 3: Получить пользовательский ввод и сгенерировать пароль
Запросим у пользователя желаемую длину пароля и сгенерируем пароль с помощью нашей функции.
password_length = int(input("Введите желаемую длину пароля: ")) generated_password = generate_password(password_length) print("Ваш сгенерированный пароль:", generated_password)
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Пример работы генератора паролей
При выполнении кода пользователь вводит длину пароля, и на выходе получает сгенерированный пароль.
Введите желаемую длину пароля: 12 Ваш сгенерированный пароль: a5B$!pL&3mQ*
Теперь у вас есть простой генератор паролей на Python! Вы можете улучшить его, добавив дополнительные функции, такие как проверка сложности пароля или возможность выбора типов символов для использования в пароле.
Не забудьте изучать дополнительные материалы и практиковаться в программировании на Python, чтобы стать опытным разработчиком. Удачи вам в дальнейшем обучении!
Модуль secrets в Python, генерация паролей и токенов
Генерация паролей, токенов и криптографически сильных случайных чисел
Модуль secrets используется для генерации криптографически сильных случайных чисел, подходящих для управления такими данными, как пароли, аутентификация учетной записи, токены безопасности и связанные секреты.
В частности, secrets следует использовать по умолчанию вместо генератора псевдослучайных чисел модуля random , который в свою очередь предназначен для моделирования и симуляции, а не для защиты или криптографии.
Сколько байтов следует использовать токенам?
Чтобы обезопасить себя от атак методом «перебора», токены должны иметь достаточную случайность. С 2015 года считается, что 32 байта (256 бит) является достаточно сильным токеном для типичного варианта использования.
Что бы указать собственную длину токена, то можно явно передать функциям token_* аргумент nbytes , который имеет тип int . Этот аргумент принимается за количество байт, которое будет использовано при создании токена.
В противном случае, если аргумент nbytes не предоставлен или равен None , функциям token_* будут использовать разумное значение по умолчанию.
Примечания:
- Значение по умолчанию может быть изменено в любое время, в том числе во время выпусков обновлений.
- Приложения не должны хранить пароли в восстанавливаемом формате, будь то простой или зашифрованный текст. Они должны быть хешированы с использованием криптографически сильной односторонней (необратимой) хеш-функции.
Примеры использования:
Создание восьмибуквенного буквенно-цифрового пароля:
>>> import string >>> import secrets >>> alphabet = string.ascii_letters + string.digits >>> password = ''.join(secrets.choice(alphabet) for i in range(8)) >>> password # '9vfMa4Wz'
Создание десятисимвольного буквенно-цифрового пароля, содержащего как минимум один символ нижнего регистра, как минимум один символ верхнего регистра и как минимум три цифры:
import string import secrets alphabet = string.ascii_letters + string.digits while True: password = ''.join(secrets.choice(alphabet) for i in range(10)) if (any(c.islower() for c in password) and any(c.isupper() for c in password) and sum(c.isdigit() for c in password) >= 3): break print(password) # 'oz2B4b3dO9'
Создание кодовой фразы в стиле «XKCD»:
import secrets # В стандартных системах Linux используйте удобный файл словаря. # Другие платформы, должны предоставить свой собственный список слов. with open('/usr/share/dict/words') as f: words = [word.strip() for word in f] password = ' '.join(secrets.choice(words) for i in range(4)) print(password) # "Np escape guidebook's outperforms"
Создание временного, трудно угадываемого URL-адреса, содержащего маркер безопасности и подходящего для приложений восстановления пароля:
>>> import secrets >>> url = 'https://mydomain.com/reset=' + secrets.token_urlsafe() >>> url # 'https://mydomain.com/reset=l6nrqcxpqgoogE0TBjAQNHrrgm-VycP3gcbP4eqvFsM'
- КРАТКИЙ ОБЗОР МАТЕРИАЛА.
- Случайные числа модуля secrets
- Генерация токенов модулем secrets
