Gerador de Senha
Gere senhas seguras usando a Web Crypto API.
Gere senhas seguras usando a Web Crypto API.
Esta ferramenta usa a Web Crypto API
(window.crypto.getRandomValues), disponível em todos os navegadores modernos,
que produz números aleatórios criptograficamente seguros — ou seja, imprevisíveis por
design, ao contrário do Math.random() do JavaScript, que usa um gerador
pseudoaleatório simples não adequado para criptografia.
Além disso, o algoritmo garante ausência de viés de módulo: ao escolher um caractere do alfabeto, valores fora do maior múltiplo do tamanho do alfabeto são rejeitados e um novo valor é sorteado. Isso assegura distribuição uniforme entre todos os caracteres possíveis. O resultado é então embaralhado com Fisher-Yates usando a mesma fonte criptográfica, garantindo ao menos um caractere de cada conjunto selecionado.
A entropia é uma medida da imprevisibilidade de uma senha, expressa em bits. A fórmula básica é:
entropia (bits) = comprimento × log₂(tamanho do alfabeto)
Por exemplo, uma senha de 16 caracteres usando maiúsculas + minúsculas + números (alfabeto de 62 símbolos) tem entropia de 16 × log₂(62) ≈ 95 bits. Com símbolos adicionados (alfabeto ~90), sobe para cerca de 102 bits.
| Faixa de entropia | Classificação | Uso típico |
|---|---|---|
| Abaixo de 40 bits | Fraca | Evitar em qualquer contexto real |
| 40–59 bits | Média | Aceitável para contextos de baixo risco |
| 60–127 bits | Forte | Recomendado para contas e sistemas |
| 128 bits ou mais | Muito forte | Padrão para criptografia e sistemas críticos |
crypto.getRandomValues em vez de Math.random?
Math.random() usa um gerador pseudoaleatório (PRNG) projetado para velocidade,
não para segurança. Em alguns engines, seu estado pode ser inferido a partir de saídas
anteriores. window.crypto.getRandomValues usa a fonte de entropia do sistema
operacional (equivalente a /dev/urandom no Linux), adequada para uso
criptográfico.
Se o tamanho do alfabeto não é divisor exato do intervalo do número aleatório (0–255 para um byte, por exemplo), alguns caracteres aparecem com probabilidade ligeiramente maior — isso se chama viés de módulo. Esta ferramenta rejeita valores fora do maior múltiplo do tamanho do alfabeto e sorteia novamente, garantindo distribuição perfeitamente uniforme.
São caracteres visualmente parecidos que podem causar confusão ao transcrever senhas
manualmente: 0 (zero) e O (letra O), 1 (um) e
l (L minúsculo) e I (i maiúsculo). A opção
Evitar caracteres ambíguos os remove do alfabeto, reduzindo levemente a entropia
mas facilitando a transcrição manual quando necessário.
A entropia indica a imprevisibilidade teórica da senha, assumindo que o gerador é verdadeiramente aleatório. Ela não leva em conta ataques de lado (side-channel) nem comprometimento do dispositivo. É uma métrica útil e bem fundamentada, mas não substitui boas práticas gerais de segurança.
Sim — a geração é criptograficamente segura. No entanto, lembre-se de que a responsabilidade pelo armazenamento e uso seguro da senha é sua. Use um gerenciador de senhas para guardar senhas geradas, nunca as armazene em texto puro.