1
resposta

[Sugestão] Gerador de senha segura

# Crie um programa que gere uma senha aleatória de 12 caracteres, contendo pelo menos uma letra maiúscula, uma minúscula, um número e um caractere especial.
# Exiba a senha gerada.

import string
import random

def gerar_senha(
    tamanho: int = 8,
    maiuscula: bool = False,
    numero: bool = False,
    especial: bool = False
) -> str:
    '''
    Gera uma senha com caracteres aleatórios com o formato padrão de 8 caracteres de letras minúsculas
    
    :param tamanho: Quantidade de caracteres que deve ser gerado na senha
    :type tamanho: int
    :param maiuscula: A senha deve conter letras maiúsculas?
    :type maiuscula: bool
    :param numero: A senha deve conter números?
    :type numero: bool
    :param especial: A senha deve ter caracteres especiais?
    :type especial: bool
    :return: Retorna uma string informando a senha gerada
    :rtype: str
    '''
    
    # Começa com letras minúsculas como base
    caracteres = string.ascii_lowercase
    senha = [random.choice(string.ascii_lowercase)]
    
    if maiuscula:
        caracteres += string.ascii_uppercase
        senha.append(random.choice(string.ascii_uppercase))
    if numero:
        caracteres += string.digits
        senha.append(random.choice(string.digits))
    if especial:
        caracteres += string.punctuation
        senha.append(random.choice(string.punctuation))
    
    senha.extend(random.choice(caracteres) for _ in range(tamanho - 4))
    random.shuffle(senha)
    
    return ''.join(senha)

def main():
    senha = gerar_senha(tamanho=12,maiuscula=True,numero=True,especial=True)
    print(f'Senha gerada: {senha}')

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

Olá, José Rafael! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso da biblioteca string para organizar os diferentes tipos de caracteres, utilizou muito bem a função random.choice para garantir variedade na composição da senha e ainda compreendeu a importância de embaralhar os elementos com random.shuffle para aumentar a segurança.

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

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!