Por que usar senhas fortes?
Senhas fracas são a principal causa de vazamentos de conta. Uma senha forte combina letras maiúsculas, minúsculas, números e símbolos com comprimento adequado — tornando ataques de força bruta inviáveis computacionalmente.
Web Crypto API: aleatoriedade real
Esta ferramenta usa window.crypto.getRandomValues() em vez de Math.random(). A diferença é crítica: Math.random() é pseudoaleatório e previsível; a Web Crypto API usa entropia do sistema operacional, garantindo aleatoriedade criptograficamente segura.
Como interpretar a força
Fraca: menos de 12 caracteres ou menos de 2 tipos de caracteres. Média: de 12 a 15 caracteres, ou 16 ou mais com apenas dois tipos. Forte: 16 caracteres ou mais com pelo menos três tipos ativos, o indicado para contas críticas.
Quando usar e quando não usar
Use para a senha inicial de um funcionário ou fornecedor, sempre com troca obrigatória no primeiro acesso; para a senha de uma integração, como o usuário técnico de um painel de anúncios, que vai direto para o cofre de senhas; e para substituir de vez as senhas de padrão previsível, como nome da loja seguido do ano.
Não é a melhor opção para senha que alguém precisa digitar de memória várias vezes por dia, como o login do operador de caixa. Uma sequência de 16 caracteres aleatórios vira papel colado no monitor. Nesse caso, uma frase-senha com várias palavras, que esta ferramenta não gera, costuma funcionar melhor. E, qualquer que seja a senha, não a envie pelo mesmo canal que leva o endereço de login.
Exemplo: quanto cada configuração vale
A força de uma senha aleatória é medida em bits de entropia: tamanho multiplicado pelo logaritmo na base 2 do número de caracteres possíveis. Cada bit a mais dobra o número de combinações.
- 16 caracteres, quatro tipos ativos (88 caracteres possíveis): cerca de 103 bits. Indicador: Forte.
- 12 caracteres, só minúsculas e números (36 possíveis): cerca de 62 bits. Indicador: Média.
- 8 caracteres, só números (10 possíveis): cerca de 27 bits. Indicador: Fraca, e é o equivalente a um PIN longo.
Uma senha gerada com a primeira configuração tem este formato: q7#Vt]mR2;xN!4pa. A sua será outra, e é exatamente essa a ideia: a página não guarda nem repete resultados.
Como a senha é sorteada
A página monta um conjunto com os tipos marcados: 26 maiúsculas, 26 minúsculas, 10 dígitos e 26 símbolos (!@#$%^&*()-_=+[]{}|;:,.<>?, lista maior do que a indicada no rótulo da opção). Em seguida pede ao navegador tantos números aleatórios de 32 bits quanto o tamanho escolhido, por meio de crypto.getRandomValues, que usa o gerador criptográfico do sistema operacional. Cada número escolhe um caractere pelo resto da divisão pelo tamanho do conjunto.
Esse método por resto introduz uma tendência mínima a favor de alguns caracteres, da ordem de 1 em 100 milhões para o conjunto de 88, desprezível na prática. Math.random não é usado em nenhum momento, porque não foi feito para segurança. O indicador de força é uma regra simples: fraca com menos de 12 caracteres ou menos de dois tipos, forte com 16 ou mais e pelo menos três tipos, média no meio.
Limitações
- Marcar um tipo não garante que ele apareça. Com 16 caracteres e os quatro tipos, a chance de a senha sair sem nenhum número é de cerca de 15%. Se o sistema exige dígito, confira e gere de novo.
- O indicador conta os tipos marcados, não os que de fato estão na senha.
- Não há opção para excluir caracteres parecidos, como 0 e O ou l, 1 e I, que atrapalham quando a senha é ditada por telefone.
- Alguns sistemas antigos recusam símbolos como
<,>e;. Se isso acontecer, desmarque símbolos e aumente o tamanho. - Uma senha por vez, sem geração em lote nem frase-senha.
Privacidade
O sorteio acontece no seu navegador e nenhuma requisição é feita: a senha nunca passa pelo servidor do site. Ao copiar, ela fica na área de transferência do sistema até ser substituída, então cole no destino e copie outra coisa em seguida se o computador for compartilhado.
Para continuar
Como Armazenar Senhas de Usuários com Responsabilidade trata do outro lado do problema, o que o sistema faz com a senha recebida, e Privacidade Client-Side e LGPD explica por que processar no navegador reduz risco. Para ver essa senha virar hash, use o Gerador Argon2id ou o Gerador de Hash Bcrypt, sempre com senhas de teste.
Perguntas frequentes
A senha gerada é enviada ou salva em algum lugar?
Não. A senha é sorteada por JavaScript no seu navegador, sem nenhuma requisição ao servidor, e não é gravada. Ela só fica na área de transferência do sistema se você clicar em Copiar.
Quantos caracteres uma senha deve ter?
Para senha gerada aleatoriamente e guardada em cofre de senhas, 16 caracteres ou mais, com vários tipos de caractere. Como ninguém precisa decorá-la, o tamanho maior não custa nada. Para senha que precisa ser memorizada, uma frase com várias palavras costuma ser mais prática e igualmente forte.
Por que a senha saiu sem número mesmo com a opção marcada?
Porque cada caractere é sorteado do conjunto inteiro, sem cota por tipo. Com 16 caracteres e os quatro tipos marcados, cerca de 14% das senhas saem sem nenhum dígito. Se o sistema exige número, gere novamente até aparecer um.
Qual a diferença entre Math.random e crypto.getRandomValues?
Math.random é um gerador pseudoaleatório pensado para jogos e simulações, sem garantia de imprevisibilidade. crypto.getRandomValues usa o gerador criptográfico do sistema operacional e é o recomendado para senhas, tokens e chaves. Esta ferramenta usa apenas o segundo.
Como distribuir senhas iniciais para funcionários ou fornecedores?
Gere uma senha por pessoa, envie o endereço de acesso e a senha por canais separados, defina validade curta e exija a troca no primeiro login. Nunca use um padrão comum a todos, como nome da empresa seguido do ano.