Password Generator

Gerador de Senhas Fortes: Senhas Seguras Aleatorias

Gere senhas aleatorias criptográficamente seguras. Personalize comprimento, conjuntos de caracteres e quantidade. Usa a Web Crypto API.

100% no navegador. Seus dados nunca saem do seu computador.

Entropia: 129 bitsMuito Forte

Ferramentas Relacionadas

O Que Torna uma Senha Forte

Uma senha forte gerada por maquina tem duas propriedades: alta entropia (imprevisibilidade) e sem padrões (sem palavras de dicionario, sem percursos de teclado, sem substituições).

A entropia e medida em bits. Cada bit duplica o número de senhas possíveis que um atacante precisa testar. Uma senha escolhida uniformemente ao acasó de um conjunto de N caracteres possíveis tem log2(N) bits de entropia por caractere.

Conjunto de caracteresCaracteres disponiveisEntropia por caractere
Apenas minusculas264,7 bits
Minusculas + digitos365,2 bits
Maiusculas + minusculas + digitos625,9 bits
ASCII imprimivel completo956,6 bits

Uma senha de 20 caracteres do conjunto ASCII imprimivel completo tem cerca de 130 bits de entropia. Uma senha de 20 caracteres limitada a apenas minusculas tem 94 bits. O conjunto de caracteres importa, mas o comprimento importa ainda mais: adicionar um caractere de um conjunto de 95 caracteres adiciona 6,6 bits de entropia. Dobrar o conjunto de caracteres de 26 para 95 adiciona apenas cerca de 1,9 bits por caractere.

NIST SP 800-63B Sobre Senhas

As diretrizes do NIST (atualizadas em 2024) merecem ser conhecidas porque contradizem a sabedoria convencional herdada sobre politicas de senhas:

Para senhas geradas por maquina armazenadas em um gerenciador, nenhuma dessas restrições de politica importa. Use entropia máxima e comprimento máximo.

Entropia de Senha vs Passphrase

Uma senha aleatória de 20 caracteres é uma passphrase são ferramentas diferentes para situações diferentes.

Uma passphrase Diceware de 4 palavras (selecionadas aleatoriamente de 7776 palavras):

correct horse battery staple

Entropia: log2(7776^4) ≈ 51,7 bits por palavra × 4 = cerca de 207 bits. Mais entropia que uma senha aleatória de 20 caracteres.

Uma passphrase Diceware de 6 palavras tem cerca de 310 bits. Issó e inquebravei. Também e digitaivei e memorizavei, sendo a escolha certa para:

Use senhas de caracteres aleatórios para tudo armazenado no seu gerenciador. Use passphrases para as poucas credenciais que você precisa lembrar ou digitar regularmente.

Web Crypto API vs Math.random()

A diferença de implementação não e sutil:

// ERRADO: Math.random() não e criptográficamente seguro
function insecurePassword(length) {
  const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  return Array.from({ length }, () => chars[Math.floor(Math.random() * chars.length)]).join("");
}

// CORRETO: crypto.getRandomValues() é um CSPRNG
function securePassword(length) {
  const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";
  const array = new Uint32Array(length);
  crypto.getRandomValues(array);
  return Array.from(array, (n) => chars[n % chars.length]).join("");
}

A operação % chars.length introduz um pequeno vies de modulo quando o tamanho do conjunto de caracteres não divide uniformemente 2^32. Para um conjunto de 95 caracteres é um valor aleatório de 32 bits, o vies e insignificante na prática (os caracteres mais comuns aparecem cerca de 0,002% mais vezes que os menos comuns). Para uma implementação crítica de seguranca, use amostragem por rejeição para eliminar até mêsmo esse pequeno vies.

Como Esta Ferramenta Gera Senhas

O gerador executa inteiramente no seu navegador. Nenhuma senha e enviada a qualquer servidor. A fonte de aleatoriedade e crypto.getRandomValues() da Web Crypto API, que todos os navegadores modernos expoem é que obtem dados do CSPRNG do sistema operacional.

Apos a geração, copie a senha diretamente para seu gerenciador de senhas. Evite colar em locais intermediarios (rascunhos de email, aplicativos de notas, janelas de chat) onde o valor possa ser registrado ou sincronizado.