Gerador de Senha

Gere senhas seguras usando a Web Crypto API.

Conjuntos de caracteres

Como esta ferramenta gera senhas seguras

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.

O que é entropia de senha?

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

Dicas para senhas mais seguras

Perguntas frequentes (FAQ)

Por que usar 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.

O que é viés de módulo e como é evitado?

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.

O que são caracteres ambíguos?

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 exibida é uma garantia de segurança?

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.

Posso usar esta ferramenta para gerar senhas de produção?

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.