1
resposta

[Projeto] Mostrando o código

import random

caracteres = [
' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/',
'0','1','2','3','4','5','6','7','8','9',
':', ';', '<', '=', '>', '?', '@',
'A','B','C','D','E','F','G','H','I','J','K','L','M',
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'[','\\',']','^','_','`',
'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z',
'{','|','}','~'
]

while True:

    senha = ''.join(random.choice(caracteres) for _ in range(12))

    if (any(c.isupper() for c in senha) and
        any(c.islower() for c in senha) and
        any(c.isdigit() for c in senha) and
        any(not c.isalnum() for c in senha)):
        break

print("Senha:", senha)
1 resposta

Olá, Joao! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso da biblioteca random para gerar combinações com Python, utilizou muito bem a lista de caracteres para compor a senha e ainda compreendeu a importância da validação de critérios para garantir segurança.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é usar o módulo secrets para maior segurança. Assim:

import secrets
import string

caracteres = string.ascii_letters + string.digits + string.punctuation
senha = ''.join(secrets.choice(caracteres) for _ in range(12))
print("Senha:", senha)

Isso faz a geração da senha com um gerador criptograficamente mais seguro.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!