Como Gerar Senhas e Números Aleatórios em Python – Como Criar Senhas Seguras?
Aprenda como criar senhas e números aleatórios em Python e armazenar senhas e chaves de API com segurança usando variáveis de ambiente, arquivos .env e boas práticas de código.
Resposta rápida: para gerar senha em Python, use a biblioteca secrets, não a random. A random é previsível: ela parte de uma seed e quem descobrir a seed reproduz a sequência inteira. Com secrets.choice ou secrets.token_urlsafe a aleatoriedade vem do sistema operacional. E a senha pronta não fica no código: vai para variável de ambiente ou arquivo .env.
O que você vai aprender:
Aula 1 – Como Criar Senhas Seguras?
Você sabe como gerar senhas e números aleatórios em Python? Ainda utiliza a biblioteca random para isso?
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
Ainda usa a biblioteca Random?
Hoje eu vou te mostrar uma alternativa muito mais segura do que a biblioteca Random em Python: a biblioteca secrets. Ela foi criada justamente para aumentar a segurança ao gerar senhas e tokens que não sejam facilmente reproduzíveis por terceiros.
A diferença entre números aleatórios e segurança
Quando queremos criar uma senha segura ou um token em Python, precisamos garantir que o número gerado não possa ser previsto.
A biblioteca random, apesar de gerar valores aleatórios, é baseada em uma seed (semente) e essa seed pode ser definida manualmente, o que representa uma vulnerabilidade.
O que é uma seed e por que ela importa?
A seed funciona como uma semente mesmo. A partir de um único número, como o 2, por exemplo, o algoritmo gera uma sequência de números "aleatórios". Um exemplo em Python:
import random
numero = random.randint(0, 100)
print(numero)A cada execução, esse código parece gerar um número aleatório. No entanto, ele é classificado como pseudoaleatório, pois segue padrões baseados na seed. Se definirmos essa seed com random.seed(2), por exemplo, o resultado será sempre o mesmo.
A biblioteca random usa a data e a hora do sistema como seed padrão. Assim, o valor muda com o tempo, o que dá uma sensação de aleatoriedade. Mas isso não é o suficiente para garantir segurança. Alguém que souber o horário da execução pode replicar os resultados.
Segurança: por que a biblioteca Random não é suficiente
Apesar de parecer aleatório, o número gerado com random pode ser previsto com técnicas simples, especialmente se alguém souber quando seu código foi executado. Por isso, essa biblioteca não é recomendada para gerar senhas, tokens de autenticação ou chaves de API.
A biblioteca Secrets: o jeito certo de gerar senhas seguras
Para resolver esse problema, o Python oferece a biblioteca secrets, projetada para gerar senhas seguras e números verdadeiramente aleatórios no contexto computacional.
Diferente da random, o secrets utiliza uma seed extremamente complexa, baseada em diversos fatores internos do seu computador, como uso de memória, status do sistema e outras variáveis que não podem ser controladas externamente.
Essa combinação torna a previsibilidade praticamente impossível, elevando a segurança dos dados gerados.
Como gerar senhas e números aleatórios com a biblioteca Secrets
Veja alguns exemplos de como usar secrets para gerar senhas seguras e tokens aleatórios em Python
import secrets
numero = secrets.choice(range(0, 100))
print(numero)
print(secrets.token_bytes(10))
print(secrets.token_hex(10))
print(secrets.token_urlsafe(10))Cada função retorna um valor diferente, no formato desejado: bytes, hexadecimal ou formato seguro para URLs.

Por que o Secrets é mais seguro que o Random
- O secrets gera números aleatórios com base em variáveis internas do sistema, e não em uma seed definida.
- A saída é diferente a cada execução, mesmo que o código seja idêntico.
- Ele se adapta ao sistema operacional (Windows, Linux, Mac), gerando tokens diferentes em cada um.
- Não é possível definir manualmente o seed, o que elimina o risco de previsibilidade.
Conclusão: Como criar senhas seguras em Python com confiança
Se você busca segurança de verdade, especialmente ao lidar com autenticação, acesso a APIs ou armazenamento de dados sensíveis, a biblioteca secrets é a melhor escolha.
Entender as diferenças entre random e secrets é essencial para qualquer pessoa que queira trabalhar com senhas e números aleatórios em Python, seja em projetos pessoais ou profissionais.
Aula 2 - O Jeito Certo de Guardar Senhas e Chaves de API dos Seus Códigos
Nessa aula, eu quero te mostrar como guardar senhas e chaves de API de forma segura em Python!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
Como guardar senhas e chaves de API com segurança em Python
Em muitos casos, é necessário inserir uma senha ou uma API key diretamente no código para executar uma ação. Mas a grande pergunta é: você está armazenando essas informações de forma segura?
Primeiro, vamos ver o jeito mais simples (e menos seguro): inserir a chave diretamente no código. Em seguida, vou te mostrar três formas seguras utilizando variáveis de ambiente, e no final, comento sobre uma solução extra utilizando um sistema externo de gerenciamento de senhas.
Bora aprender como guardar senhas e chaves de API em Python com segurança? Então vem comigo!
A forma insegura de guardar senhas: dentro do código
Uma das formas mais comuns (e perigosas) de armazenar senhas é colocá-las diretamente no código, seja em uma variável ou em um arquivo .txt.
O problema? Qualquer pessoa com acesso ao seu projeto, seja no GitHub ou em ambiente colaborativo, também terá acesso à senha. Essa abordagem é insegura e não deve ser usada em ambientes de produção.
Como guardar senhas usando variáveis de ambiente
A maneira mais comum — e recomendada — de armazenar informações sensíveis como senhas ou chaves de API é através de variáveis de ambiente.
Se você ainda não conhece variáveis de ambiente, temos uma aula dedicada a isso (link aqui!). Em resumo, são valores definidos no sistema ou editor que não ficam salvos diretamente no código.
Você pode definir variáveis de ambiente no terminal, nas configurações do editor de texto ou usando um arquivo .env.
Como criar variáveis de ambiente no terminal
No Windows, você pode definir uma variável da seguinte forma:
setx API_KEY_VIDEOLIRA “sfhsiufsfyusg67sgs6gsf”Esse comando define a variável no sistema. Depois disso, talvez seja necessário reiniciar seu editor de código para que a variável seja reconhecida.
Como definir variáveis no editor de código ou IDE
Alguns editores, como o PyCharm, oferecem a opção de configurar Environment Variables nas configurações do projeto. Basta adicionar o nome da variável e o valor desejado. Pronto!
Como acessar variáveis de ambiente no código Python
Agora que a variável foi definida, você pode acessá-la no seu código com a biblioteca os:
import os
chave = os.getenv("API_KEY_VIDEOLIRA")
print(chave)Assim, sua senha ou API key não fica visível diretamente no código, tornando-o mais seguro.
Usando arquivos .env para guardar senhas
Outra forma bastante prática e segura é usar um arquivo .env, que serve exclusivamente para armazenar variáveis de ambiente.
A vantagem é que, por padrão, o .env é ignorado pelo GitHub e outras ferramentas de versionamento, evitando o envio acidental de dados sensíveis.
Para utilizar esse recurso, instale a biblioteca python-dotenv: pip install python-dotenv
Depois, adicione no seu código:
from dotenv import load_dotenv
import os
load_dotenv()
chave = os.getenv("API_KEY_VIDEOLIRA")Simples, limpo e seguro.
Usando um sistema externo de gerenciamento de senhas
Por fim, existe uma alternativa mais avançada: utilizar um serviço externo para armazenar e fornecer as senhas, como AWS Secrets Manager, HashiCorp Vault ou Azure Key Vault.
Esse modelo adiciona uma camada extra de segurança, mas também exige uma integração mais complexa. Pode ser uma boa opção para projetos maiores ou com requisitos de segurança mais rígidos.
Conclusão – O jeito certo de armazenar senhas e chaves de API
Você já conhecia essas três formas de guardar senhas e números aleatórios em Python com segurança?
Cada uma tem suas vantagens e limitações. O mais importante é que você não armazene diretamente no código informações sensíveis.
Se você quer segurança, o uso de variáveis de ambiente ou arquivos .env é o caminho. E se estiver em um ambiente corporativo mais robusto, pode considerar ferramentas externas de gerenciamento.
FAQ – Senhas e Números Aleatórios em Python
1. Qual a melhor forma de gerar senhas seguras em Python?
A forma mais recomendada é utilizando a biblioteca secrets, que gera números aleatórios com base em dados do sistema, tornando as senhas muito mais seguras do que com a biblioteca random.
2. Por que a biblioteca random não é segura para gerar senhas?
Porque ela permite definir uma seed (semente), o que torna os números gerados previsíveis. Isso compromete a segurança de senhas e tokens.
3. O que são variáveis de ambiente e como elas ajudam na segurança?
Variáveis de ambiente são dados armazenados fora do código, geralmente no sistema operacional ou editor, usados para manter informações sensíveis como senhas e chaves de API protegidas.
Para saber mais sobre variáveis de ambiente acesse: Variáveis de Ambiente no Python – O que São e Como Usá-las?
4. Como usar um arquivo .env para guardar senhas?
Você pode criar um arquivo .env com as variáveis e usar a biblioteca python-dotenv para carregá-las no código. É uma forma prática e segura.
5. Posso subir o arquivo .env no GitHub?
Não é recomendado. Por padrão, o .gitignore exclui esse tipo de arquivo, mas é importante verificar se isso está configurado corretamente.
6. Existe alguma forma mais avançada de gerenciar senhas além das variáveis de ambiente?
Sim, você pode usar sistemas externos como AWS Secrets Manager, Azure Key Vault ou HashiCorp Vault. São ideais para projetos com maior necessidade de segurança.
7. Qual biblioteca usar para gerar tokens seguros em Python?
A biblioteca secrets oferece funções como token_bytes(), token_hex() e token_urlsafe() para gerar tokens seguros e únicos.
Conclusão – Gerando e Armazenando Senhas com Segurança em Python
Se você chegou até aqui, agora sabe não só como gerar senhas e números aleatórios em Python, mas também como armazenar essas informações de forma segura nos seus projetos.
Aprendemos que, embora a biblioteca random seja útil para simulações e sorteios simples, ela não é adequada para fins de segurança, já que permite a definição de uma seed previsível. Por isso, o Python oferece a biblioteca secrets, ideal para criar senhas, tokens e números realmente aleatórios e seguros.
Além disso, vimos que guardar senhas diretamente no código é uma prática arriscada, e que o ideal é utilizar variáveis de ambiente, seja configurando pelo terminal, pelo editor ou por meio de um arquivo .env. Em projetos mais complexos, você ainda pode contar com serviços externos de gerenciamento de segredos.
Essas práticas são fundamentais para quem quer escrever códigos mais seguros, profissionais e preparados para o mundo real, principalmente quando falamos de APIs, autenticações e deploys.
Agora é com você! Aplique essas dicas, pratique com seus próprios projetos e garanta que seus dados sensíveis estejam sempre protegidos.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercícios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.








