1
resposta

[Projeto] Gerador de senha segura

import os
import random

def senha_randomica():
    characteres = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%¨&*()_-+=.,<>;:'
    password = ""
    statusUpper = bool(0)
    statusLower = bool (0)
    statusNumber = bool(0)
    statusSpecChar = bool (0)
    
    for i in range(12):
        password = password + random.choice(characteres)
        i += 1

    for char in password:
        if char.isupper():
            statusUpper = bool(1)
        elif char.islower():
            statusLower = bool(1)
        elif char.isdigit():
            statusNumber = bool(1)
        else:
            statusSpecChar = bool(1)

    
    if statusUpper == False:
        #print('Senha precisa conter pelo menos 1 letra maiuscula')
        return senha_randomica()
    elif statusLower == False:
        #print('Senha precisa conter pelo menos 1 letra minuscula')
        return senha_randomica()
    elif statusNumber == False:
        #print('Senha precisa conter pelo menos 1 número')
        return senha_randomica()
    elif statusSpecChar == False:
        #print('Senha precisa conter pelo menos 1 caracter especial')
        return senha_randomica()
    else:
        return print(f'Senha gerada: {password}')
    


os.system('cls')
senha_randomica()
1 resposta

Olá, Kelvin! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou a string para definir os caracteres possíveis com Python, utilizou muito bem o random.choice para gerar combinações aleatórias e ainda compreendeu a importância da recursão para garantir que a senha cumpra todos os requisitos.

Uma dica interessante para o futuro é trabalhar com o módulo secrets, indicado para geração de senhas seguras. Assim:

import string
import secrets

def senha_segura(tamanho=12):
    caracteres = string.ascii_letters + string.digits + string.punctuation
    senha = ''.join(secrets.choice(caracteres) for _ in range(tamanho))
    return senha

print(f'Senha gerada: {senha_segura()}')

Isso faz a geração de senhas com maior segurança criptográfica.

Conteúdos relacionados

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

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!