import random
import string
def gerar_senha_segura(tamanho: int = 12) -> str:
caracteres_maiusculos = string.ascii_uppercase
caracteres_minusculos = string.ascii_lowercase
caracteres_numeros = string.digits
caracteres_especiais = string.punctuation
todos_caracteres = caracteres_maiusculos + caracteres_minusculos + caracteres_numeros + caracteres_especiais
senha = []
senha.append(random.choice(caracteres_maiusculos))
senha.append(random.choice(caracteres_minusculos))
senha.append(random.choice(caracteres_numeros))
senha.append(random.choice(caracteres_especiais))
tamanho_restante = tamanho - 4
if tamanho_restante > 0:
senha.extend(random.choices(todos_caracteres, k=tamanho_restante))
random.shuffle(senha)
return ''.join(senha)
if __name__ == '__main__':
TAMANHO_PADRAO = 12
senha_final = gerar_senha_segura(tamanho=TAMANHO_PADRAO)
print('Gerador de Senha Segura')
print('-' * 30)
print(f'Comprimento da Senha: {TAMANHO_PADRAO} caracteres')
print(f'Senha gerada: {senha_final}')