Como gerar uma senha aleatória forte?
Para gerar uma senha forte, escolha um conjunto de caracteres (maiúsculas, minúsculas, números, símbolos), depois use um gerador de números aleatórios criptograficamente seguro para escolher um caractere desse conjunto por posição, repetindo até o comprimento escolhido. Exemplo: com os quatro tipos de caractere e comprimento 16, o conjunto desta ferramenta tem 88 caracteres, dando 88^16 (cerca de 1,3 x 10^31) senhas possíveis.
Passos para gerar e avaliar uma senha aleatória
- Escolha quais tipos de caractere incluir: letras maiúsculas, minúsculas, números e símbolos.
- Combine os tipos selecionados em um único conjunto de caracteres (por exemplo, os quatro tipos juntos formam o conjunto de 88 caracteres desta ferramenta: 26 maiúsculas + 26 minúsculas + 10 dígitos + 26 símbolos).
- Use crypto.getRandomValues(), o gerador de números aleatórios criptograficamente seguro do navegador, para escolher um índice aleatório no conjunto para cada posição de caractere.
- Repita essa seleção aleatória até completar o comprimento de senha escolhido para montar a string completa.
- Estime a força a partir do tamanho do conjunto e do comprimento juntos: mais tipos de caractere e mais comprimento multiplicam o número total de senhas possíveis.
Fórmula do espaço de busca da senha
Senhas possíveis = (tamanho do conjunto) ^ (comprimento)
- tamanho do conjunto = número de caracteres distintos disponíveis (26 só com minúsculas, até 88 com maiúsculas + minúsculas + números + o conjunto de símbolos desta ferramenta)
- comprimento = número de caracteres na senha
Exemplo de espaço de busca por comprimento e tipos de caractere
| Comprimento | Tipos de caractere | Tamanho do conjunto | Senhas possíveis |
|---|
| 8 | Só minúsculas | 26 | 2,1 x 10^11 |
| 8 | Todos os 4 tipos | 88 | 3,6 x 10^15 |
| 12 | Todos os 4 tipos | 88 | 2,2 x 10^23 |
| 16 | Todos os 4 tipos | 88 | 1,3 x 10^31 |
| 20 | Todos os 4 tipos | 88 | 7,8 x 10^38 |
Perguntas frequentes
O que é mais importante para a força da senha: comprimento ou variedade de caracteres?
O comprimento importa mais. O NIST SP 800-63B recomenda especificamente priorizar o comprimento em vez de regras forçadas de complexidade, porque cada caractere adicional multiplica o espaço de busca mais do que adicionar mais um tipo de caractere — uma senha mais longa formada por uma frase de palavras comuns pode ser mais forte que uma curta cheia de símbolos.
Esta ferramenta envia a senha gerada para algum lugar?
Não. A senha é gerada e exibida inteiramente dentro do seu navegador usando o crypto.getRandomValues() do JavaScript — nada é transmitido a um servidor, registrado ou armazenado, então a senha nunca sai do seu dispositivo, a menos que você mesmo a copie e cole em outro lugar.
Por que adicionar símbolos faz tanta diferença na força da senha?
A força cresce exponencialmente com o tamanho do conjunto, não de forma linear. Adicionar os 26 símbolos desta ferramenta a um conjunto alfanumérico de 62 caracteres (26 maiúsculas + 26 minúsculas + 10 dígitos) leva a 88 caracteres, e como o expoente (comprimento) permanece o mesmo, essa base maior multiplica o número total de senhas possíveis muitas vezes.
Devo reutilizar uma senha forte gerada em vários sites?
Não. A força de uma senha só protege contra ataques de adivinhação; ela não evita danos se o banco de dados de um site for violado e a mesma senha for reutilizada em outro lugar. Use uma senha única por site, de preferência gerenciada com um gerenciador de senhas.
Esta ferramenta gera senhas inteiramente no lado do cliente usando a Web Crypto API e estima a força apenas a partir do comprimento e do tamanho do conjunto de caracteres; ela não consegue verificar a senha em bancos de dados de vazamentos conhecidos nem detectar padrões previsíveis, como sequências de teclado ou palavras de dicionário.
Sources: NIST SP 800-63B - Digital Identity Guidelines: Authentication and Lifecycle Management