utildev
← Blog
Geradores de Segurança6 min

Como criar e armazenar senhas seguras

Entenda o que torna uma senha forte, por que gerenciadores de senhas são essenciais, e como fazer o hashing correto de senhas no backend com bcrypt e argon2.

Senhas são o elo mais fraco na maioria dos sistemas de segurança. Entender o que torna uma senha realmente forte — e como armazená-la corretamente no backend — é fundamental para qualquer desenvolvedor que trabalhe com autenticação.

O que torna uma senha forte: entropia

A força de uma senha é medida em bits de entropia: quanto mais bits, mais tempo leva para quebrá-la por força bruta. Entropia = log₂(tamanho_do_alfabeto ^ comprimento). Uma senha de 12 caracteres usando letras (maiúsculas+minúsculas), dígitos e símbolos (~95 caracteres) tem log₂(95¹²) ≈ 79 bits de entropia — o que levaria milhões de anos para quebrar com hardware atual.

  • Comprimento é o fator mais importante (cada caractere adiciona ~6-7 bits)
  • 12+ caracteres com mistura de tipos é o mínimo recomendado
  • Padrões previsíveis ("P@ssw0rd") reduzem drasticamente a entropia real
  • Palavras do dicionário + substituições (a→@, o→0) são facilmente quebradas por dicionários modernos
Um gerenciador de senhas (Bitwarden, 1Password, KeePass) é a solução correta para senhas únicas e fortes em cada serviço. Não tente memorizar — use ferramentas feitas para isso.

Como NÃO armazenar senhas no backend

  • Nunca em texto plano
  • Nunca com MD5 ou SHA simples (mesmo com salt, são muito rápidos para ataques de GPU)
  • Nunca com criptografia reversível (se o servidor é comprometido, todas as senhas vazam)

Como armazenar senhas corretamente: bcrypt, scrypt, argon2

Funções de hash para senhas são propositalmente lentas e têm salt embutido. bcrypt é o mais estabelecido (1999), amplamente suportado. argon2 ganhou o Password Hashing Competition em 2015 e é a recomendação moderna — com variantes argon2i (side-channel resistant), argon2d (GPU resistant) e argon2id (recomendado, combina os dois).

// bcrypt (Node.js)
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash(password, 12); // custo 12
const valid = await bcrypt.compare(password, hash);

// argon2 (Node.js)
const argon2 = require('argon2');
const hash = await argon2.hash(password); // argon2id por padrão
const valid = await argon2.verify(hash, password);

Use o Gerador de Senha do UtilDev para criar senhas criptograficamente seguras com comprimento e conjunto de caracteres configuráveis. Todas as senhas são geradas localmente no seu navegador.

Ferramentas relacionadas

Validador de Força de Senha
Verifique a força de uma senha e obtenha recomendações
Gerador de Senha Forte
Gere senhas seguras e aleatórias com critérios personalizáveis

Artigos relacionados

O algoritmo Luhn e a validação de cartões de crédito6 min →