1
resposta

[Projeto] Exercício feito, gostaria de feedback

A ideia aqui é garantir que teremos pelo menos uma letra maiúscula, uma minúscula, um número e um caractere especial.

import random
import string


def gerador_de_senha():
    caracteres = string.ascii_letters + string.digits + string.punctuation
    maiuscula = random.choice(string.ascii_uppercase)
    minuscula = random.choice(string.ascii_lowercase)
    numero = random.choice(string.digits)
    especial = random.choice(string.punctuation)
    garantidos = [maiuscula, minuscula, numero, especial]
    restantes = random.choices(caracteres, k=8)
    senha_lista = garantidos + restantes
    random.shuffle(senha_lista)
    senha = "".join(senha_lista)
    return senha


def main():
    print(f"Senha gerada: {gerador_de_senha()}")


if __name__ == "__main__":
    main()
    
    ```
1 resposta

Olá, Matheus! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso da biblioteca string para reunir diferentes tipos de caracteres com Python, utilizou muito bem o random.choice para garantir a presença de cada categoria de símbolo e ainda compreendeu a importância do random.shuffle para embaralhar e tornar a senha mais segura.

Uma dica interessante para o futuro é permitir que o usuário defina o tamanho da senha desejada. Assim:

def gerador_de_senha(tamanho):
    caracteres = string.ascii_letters + string.digits + string.punctuation
    maiuscula = random.choice(string.ascii_uppercase)
    minuscula = random.choice(string.ascii_lowercase)
    numero = random.choice(string.digits)
    especial = random.choice(string.punctuation)
    garantidos = [maiuscula, minuscula, numero, especial]
    restantes = random.choices(caracteres, k=tamanho - 4)
    senha_lista = garantidos + restantes
    random.shuffle(senha_lista)
    return "".join(senha_lista)

print("Senha gerada:", gerador_de_senha(7))

Isso faz o programa gerar senhas com comprimento variável, conforme a necessidade.

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!