1
resposta

09 Gerador de senha segura

import os, random


def titulo_estilizado(texto):
    print(f'{'=' * (len(texto) + 10)}')
    print(texto.center(10 + len(texto)))
    print(f'{'=' * (len(texto) + 10)}')


def gerador_de_senha():
    os.system('cls')
    titulo_estilizado('Gerador de Senha')
    upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    lower = 'abcdefghijklmnopqrstuvwxyz'
    numbers = '1234567890'
    symbols = '!@#$%&*'
    char = upper + lower + numbers + symbols
    password = [
        random.choice(upper),
        random.choice(lower),
        random.choice(numbers),
        random.choice(symbols),
    ]
    password.extend(random.choices(char, k=8))
    random.shuffle(password)
    password = ''.join(password)
    titulo_estilizado(f'Sua senha é: {password}')


def main():
    gerador_de_senha()


if __name__ == '__main__':
    main()
1 resposta

Olá, Daniel, como vai?

O seu código atende perfeitamente aos requisitos do exercício. Você utilizou a biblioteca random de forma eficiente, garantindo a presença de todos os tipos de caracteres exigidos ao selecionar individualmente um de cada grupo antes de completar o restante da senha com a função choices. A lógica de embaralhar a lista final com shuffle é fundamental para que a posição dos caracteres obrigatórios não seja previsível, o que aumenta a segurança da senha gerada.

Parabéns pelo excelente trabalho e pela organização do script. Continue compartilhando seus projetos com a comunidade. O fórum segue à disposição para qualquer dúvida que surgir em seus estudos.

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