Desenvolvimento de Software

Como gerar senhas seguras: boas práticas para devs e usuários

Guia completo sobre geração de senhas seguras, comprimento ideal, uso de gerenciadores de senhas e como armazenar senhas em sistemas de forma segura.

VLPor Vitor Luz
11 min de leitura

Senhas são a linha de defesa mais comum em sistemas digitais — e também a mais mal implementada. 'Password123', '123456' e 'qwerty' ainda dominam as listas de senhas mais usadas no mundo em 2025. Este guia cobre o que uma senha forte realmente precisa ter, como gerá-las e — para desenvolvedores — como armazená-las de forma segura em sistemas.

O que torna uma senha forte?

A força de uma senha é medida pela entropia — a quantidade de aleatoriedade que impede que um atacante adivinhe o valor por força bruta. Os fatores que aumentam a entropia são comprimento (o fator mais importante), uso de caracteres de múltiplas categorias (maiúsculas, minúsculas, números, símbolos) e ausência de padrões previsíveis.

Uma senha de 8 caracteres com letras e números tem ~47 bits de entropia. Com 16 caracteres usando todas as categorias, chegamos a ~105 bits — dez mil vezes mais difícil de quebrar por força bruta. A diferença de comprimento é exponencial, não linear.

Comprimento ideal para diferentes contextos

  • Senhas pessoais comuns: mínimo 12 caracteres, idealmente 16+
  • Contas críticas (banco, email principal): 20+ caracteres, preferencialmente geradas aleatoriamente
  • Tokens de API e chaves secretas: 32+ caracteres ou 256 bits, totalmente aleatórios
  • Passphrases: 4–6 palavras aleatórias (ex: 'cavalo-bateria-correto-grampeador') — fáceis de lembrar, difíceis de quebrar

Por que não usar senhas com palavras reais

Ataques de dicionário tentam combinações de palavras conhecidas antes de tentar caracteres aleatórios. Uma senha como 'Cachorro@2024' parece forte — tem maiúscula, símbolo e número — mas é vulnerável a ataques de dicionário que combinam palavras comuns com substituições previsíveis. Uma sequência aleatória de caracteres com metade do comprimento seria mais difícil de quebrar.

Gerenciadores de senhas: a solução prática

A principal razão pela qual as pessoas reutilizam senhas é a dificuldade de memorizar dezenas de senhas únicas e fortes. Gerenciadores de senhas (Bitwarden, 1Password, KeePass) resolvem isso: você memoriza uma única senha mestra forte e o gerenciador cuida do resto, gerando e armazenando senhas únicas para cada serviço.

Para desenvolvedores: armazenando senhas com segurança

Nunca armazene senhas em texto puro, nunca use MD5 ou SHA-1 para hash de senhas (são rápidos demais — facilmente atacáveis por força bruta com hardware moderno). Use algoritmos de hash especialmente projetados para senhas: bcrypt, Argon2 (recomendado) ou PBKDF2. Eles são intencionalmente lentos e têm salt automático.

A regra simples: se você pode recuperar a senha original, está armazenando errado. Senhas devem ser armazenadas como hashes irreversíveis. Na autenticação, você compara o hash da senha digitada com o hash armazenado.

O papel do salt e do pepper

Mesmo usando bcrypt ou Argon2, dois conceitos fazem diferença. O salt é um valor aleatório único adicionado a cada senha antes do hash — ele garante que dois usuários com a mesma senha tenham hashes diferentes, inviabilizando ataques de rainbow table. Algoritmos modernos de hash de senha já geram e embutem o salt automaticamente. O pepper é um segredo adicional, igual para toda a aplicação, guardado fora do banco (em variável de ambiente ou cofre): se o banco vazar, o atacante ainda não tem o pepper. Salt protege contra tabelas pré-computadas; pepper adiciona uma camada caso o banco inteiro seja comprometido.

Autenticação em dois fatores (2FA) e MFA

Por mais forte que seja, uma senha sozinha é um único ponto de falha. A autenticação em dois fatores (2FA) adiciona um segundo elemento — algo que você tem (um app autenticador gerando códigos TOTP, uma chave física) ou algo que você é (biometria). Mesmo que a senha vaze, o atacante não entra sem o segundo fator. Para contas críticas, habilitar 2FA é a melhoria de segurança com melhor custo-benefício que existe. Como desenvolvedor, ofereça TOTP (compatível com Google Authenticator, Authy) em vez de SMS, que é vulnerável a SIM swap.

Passkeys: o futuro sem senha

As passkeys (baseadas no padrão WebAuthn/FIDO2) estão substituindo senhas em serviços grandes. Em vez de um segredo compartilhado que pode vazar, a passkey usa um par de chaves criptográficas: a privada nunca sai do seu dispositivo, e o servidor guarda só a pública. Não há o que vazar em um banco de dados, e phishing deixa de funcionar porque a passkey é vinculada ao domínio. É a direção para onde a autenticação está indo — vale conhecer ao projetar sistemas novos.

Gerando senhas com o GeraValida

Nossa ferramenta de geração de senhas usa o gerador de números aleatórios criptograficamente seguro do navegador (window.crypto) para garantir aleatoriedade real. Você pode configurar comprimento, caracteres permitidos e quantidade de senhas geradas — útil para criar credenciais de ambiente, tokens temporários ou senhas para novos usuários em sistemas.

Perguntas frequentes

Trocar de senha periodicamente aumenta a segurança?

A recomendação mudou. Órgãos como o NIST hoje desaconselham a troca forçada e periódica, porque leva os usuários a criar senhas fracas e previsíveis (senha1, senha2...). O melhor é uma senha forte e única por serviço, trocada apenas se houver suspeita de vazamento.

Como sei se minha senha vazou?

Serviços como o Have I Been Pwned permitem checar se um e-mail ou senha apareceu em vazamentos conhecidos. Se apareceu, troque imediatamente em todos os serviços onde a usava — e pare de reutilizá-la.

Ferramentas gratuitas relacionadas