Voltar ao blog
PythonProgramaçãoIniciantesTecnologiaTutorial

Python para Iniciantes (Parte 4): Crie um Gerador de Senhas

Una tudo o que aprendeu e construa um gerador de senhas seguras na parte 4 e final da nossa trilha de introdução à programação em Python.

CC

Cajuina Code

·3 min de leitura

Nas partes anteriores da nossa trilha, aprendemos sobre os pilares da programação em Python: variáveis (na Parte 1), tomadas de decisões e loops (na Parte 2) e a organização com funções e coleções (na Parte 3).

Agora, chegou o momento de colocar todo esse conhecimento teórico à prova. Vamos construir juntos um Gerador de Senhas Seguras funcional, que roda direto no seu terminal e cria senhas aleatórias fortes contendo letras, números e símbolos especiais.

TL;DR: Neste projeto prático final, criaremos um script em Python que utiliza a biblioteca nativa random para sortear caracteres aleatórios e construir uma senha segura do tamanho que o usuário desejar.

O Planejamento do Projeto

Para fazer o nosso gerador de senhas, precisamos que o script realize os seguintes passos lógicos:

  1. Importar as bibliotecas do Python que geram dados aleatórios.
  2. Definir quais tipos de caracteres a senha pode conter (letras, números e símbolos).
  3. Pedir para o usuário informar o tamanho desejado para a senha.
  4. Sortear caracteres aleatórios desse conjunto até atingir o comprimento escolhido.
  5. Exibir a senha final na tela.

O Código Completo do Projeto

Copie o código abaixo e execute no seu ambiente Python (seja no computador ou no navegador através do Google Colab/Replit):

import random
import string

def gerar_senha_segura(comprimento):
    # 1. Definindo os grupos de caracteres disponíveis
    letras = string.ascii_letters  # Contém letras maiúsculas e minúsculas
    numeros = string.digits         # Contém os números de 0 a 9
    simbolos = string.punctuation   # Contém caracteres especiais (!, @, #, etc.)
    
    # 2. Juntando todos os grupos em um único pool de caracteres
    todos_caracteres = letras + numeros + simbolos
    
    # 3. Sorteando os caracteres de forma aleatória usando um loop
    senha = ""
    for i in range(comprimento):
        caractere_sorteado = random.choice(todos_caracteres)
        senha = senha + caractere_sorteado
        
    return senha

# --- Execução Principal do Script ---
print("--- BEM-VINDO AO GERADOR DE SENHAS CAJUÍNA ---")
tamanho = int(input("Digite o tamanho de senha desejado (ex: 12): "))

# Garantindo uma segurança mínima
if tamanho < 8:
    print("Aviso: Para sua segurança, recomendamos senhas com pelo menos 8 dígitos.")
    tamanho = 8

senha_final = gerar_senha_segura(tamanho)
print("Sua senha gerada é:", senha_final)

Entendendo o Código Linha por Linha

Vamos decifrar as partes mais importantes do nosso programa:

  • As Importações (import): Usamos comandos import no topo do arquivo para trazer ferramentas prontas do próprio Python. O módulo random serve para fazer sorteios e o módulo string nos dá listas prontas de letras e símbolos sem que precisemos digitar um por um.
  • A Função (gerar_senha_segura): Encapsula a lógica de geração para podermos criar novas senhas a qualquer momento apenas chamando a função.
  • A Entrada de Dados (input): Captura o que o usuário digita no teclado. Como o input sempre recebe textos, usamos o int() ao redor para convertê-lo em número inteiro.
  • O Loop (for): Sorteia um caractere de cada vez utilizando random.choice() e o concatena na variável senha até atingir o número exato de repetições definido pelo usuário.

Senha Fraca vs Senha Forte: A Diferença

Gerar senhas de forma aleatória com sistemas automáticos aumenta drasticamente a segurança das suas contas.

Tipo de SenhaExemploTempo de Quebra por Computador ComumNível de Segurança
Fraca (Datas ou Nomes comuns)lucas1995Imediato (Ataques de dicionário)**Nulo**
Média (Apenas Letras e Números)Lu45ca92Poucas horas ou dias**Baixo**
Forte (Aleatória com símbolos)k#9L!x2@p$QMilhares de anos (Impraticável)**Máximo**

Perguntas Frequentes

O que são as bibliotecas random e string no Python?

São módulos padrão (standard library) que já vêm instalados junto com o Python. Você não precisa baixar nada da internet para usá-las, basta chamá-las no topo do código usando o comando import.

Como posso deixar a senha ainda mais segura?

Aumentar o comprimento da senha para 12 ou 16 caracteres é a forma mais fácil de torná-la praticamente inquebrável, pois cada dígito extra multiplica exponencialmente as combinações possíveis.

Posso usar esse código para criar um aplicativo web?

Sim! A lógica de sorteio de caracteres seria exatamente a mesma. A única diferença seria o envio desse resultado para uma interface visual (em HTML/React) em vez de mostrá-la apenas no terminal do computador.

Parabéns!

Você concluiu a nossa trilha introdutória de Python! A partir daqui, as possibilidades são infinitas: você pode aprender sobre orientação a objetos, manipulação de arquivos ou começar a explorar frameworks web como Django e FastAPI.

Continue praticando, criando novos scripts e bons códigos!

Newsletter

Receba as notas de desenvolvimento

Enviamos atualizações técnicas e bastidores de código sem spam direto no seu e-mail.

Leia também