1
resposta

Validação de login

while True:
    nome_usuario = input("Digite seu nome de usuário: ")
    senha = input("Digite sua senha: ")

    if len(nome_usuario) < 5:
        print("O nome de usuário deve ter pelo menos 5 caracteres.")
        continue

    if len(senha) < 8:
        print("A senha deve ter pelo menos 8 caracteres.")
        continue

    print("Cadastro realizado com sucesso!")
    break
1 resposta

Olá, Giovany. Como vai?

Parabéns pela resolução! Você aplicou um padrão de projeto muito comum em sistemas de segurança: o Loop de Validação. O uso do while True é a escolha técnica perfeita para esse cenário, pois você não sabe quantas vezes o usuário vai errar antes de acertar.

Gostaria de destacar alguns pontos muito positivos na sua lógica:

  • Uso Estratégico do continue: Ao encontrar um erro, você usa o continue para "saltar" o resto do código e voltar ao início do laço imediatamente. Isso evita que o programa execute ações desnecessárias quando os dados estão inválidos.
  • O Papel do break: Você o posicionou corretamente no final, garantindo que o loop só seja interrompido após todas as validações passarem com sucesso.
  • Verificação de Comprimento (len): Utilizar o comprimento mínimo de caracteres é o primeiro passo para criar sistemas resilientes contra ataques simples de força bruta.

Dica de Segurança (Upgrade no Código)

Em sistemas de login reais, raramente validamos o comprimento do nome de usuário e da senha no mesmo bloco sem oferecer um feedback mais detalhado.

Uma pequena melhoria que você pode implementar é a Limpeza de Espaços. Às vezes, o usuário digita um espaço sem querer no final do nome. Você pode usar o método .strip() para evitar que espaços vazios contem como caracteres válidos:

nome_usuario = input("Digite seu nome de usuário: ").strip()

Desafio Extra:

Que tal tentar adicionar uma regra para a senha não ser igual ao nome de usuário? Na segurança digital, essa é uma das primeiras verificações de vulnerabilidade. Basta adicionar mais um if:

if senha == nome_usuario:
    print("A senha não pode ser igual ao nome de usuário.")
    continue

Sua base em laços de repetição está ficando muito sólida. Já pensou em como você limitaria o número de tentativas (ex: apenas 3 chances) antes de bloquear o programa?

Espero que possa ter lhe ajudado!