Python — генерация пароля с требованием сложностиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python — генерация пароля с требованием сложности

Сообщение Anonymous »

Мне нужно сгенерировать случайные пароли для более чем 200 тысяч клиентов моей компании.
Требования к сложности пароля являются общими:
  • длина > 8
  • содержит хотя бы один символ верхнего регистра
  • содержит хотя бы один символ нижнего регистра< /li>
    содержит хотя бы одну цифру
  • содержит хотя бы один символ (например, @#$%)
Вот код Python 3.8, который я использовал для генерации случайной строки пароля, следуя инструкциям по результатам поиска Google (например, этот и этот):

Код: Выделить всё

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
Это работает нормально, но я не уверен, вызовет ли использование некоторых шаблонов паролей в первых 4 символах какие-либо проблемы или нет (т. е. шаблон: ПРОПИСНЫЕ > СТРОЧНЫЕ > ЦИФРЫ > СИМВОЛЫ)< /p>
Поэтому я хотел бы узнать, существует ли какое-либо чистое, однострочное/более короткое решение для генерации необходимых паролей.
Заранее большое спасибо

Подробнее здесь: https://stackoverflow.com/questions/653 ... equirement
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»