My Dev Tools
Geradores

Gerador de senha forte e frase-senha

Escolha o tamanho e os caracteres, ou uma frase-senha de palavras em português: a força aparece em bits e tudo é sorteado no seu navegador.Roda no seu navegador: nada é enviado

A senha é sorteada no seu navegador quando a página abre.

    Tempo para adivinhar, em média

    Site com limite de tentativas10 por segundo
    —
    Hash lento vazadobcrypt: 10 mil por segundo
    —
    Hash rápido vazadoMD5 ou SHA-1 em várias GPUs: 1 trilhão por segundo
    —

    Gerando…

    Como usar

    1. Escolha o Tipo: Senha, para uma sequência de caracteres sorteados, ou Frase-senha, para palavras em português unidas por hífen, espaço, ponto, sublinhado ou nada.
    2. Ajuste o Tamanho (de 4 a 128 caracteres) ou o número de Palavras (de 3 a 20) e ligue os conjuntos que quiser: Maiúsculas, Minúsculas, Números e Símbolos. O campo Símbolos é editável: apague os que o site recusa ou cole só os que ele aceita.
    3. Confira a força em bits e o Tempo para adivinhar, em média, em 3 cenários: um site com limite de tentativas, um hash lento vazado e um hash rápido vazado.
    4. Em Quantidade, peça até 100 de uma vez, para um lote de usuários de teste; Gerar outras sorteia de novo com as mesmas opções.
    5. Copie uma senha pela linha dela, ou copie todas e baixe um .txt, uma por linha. Nada vai para servidor: as opções ficam lembradas neste navegador, as senhas nunca.

    Exemplos

    Senha padrão de 16 caracteres

    opções
    16 caracteres, os 4 conjuntos, Um de cada
    força
    104,6 bits (muito forte): 16 posições, 94 caracteres possíveis

    Frase-senha de 6 palavras

    opções
    Frase-senha de 6 palavras, separador hífen
    um sorteio possível · força
    cavalo-planeta-arroz-janela-tambor-moeda · 72 bits (forte)

    PIN de 6 dígitos

    opções
    PIN de 6 dígitos (só Números)
    força
    19,9 bits (fraca): 1.000.000 de combinações, menos de 1 segundo num hash rápido vazado

    Como a senha é sorteada

    Cada caractere sai de crypto.getRandomValues, o gerador criptográfico do navegador, alimentado pelo sistema operacional. Math.random não serve para senha: é bom para jogo e animação, mas não foi feito para ser imprevisível, e a especificação da linguagem não exige isso dele.

    Sortear um número não basta: é preciso levá-lo sem viés para a faixa dos caracteres. O atalho comum, pegar um byte e usar o resto da divisão por 94, erra porque 256 mod 94 = 68: os 68 primeiros caracteres sairiam 3 vezes em 256 e os outros 26 só 2, ou seja, 50% mais vezes. Aqui cada sorteio usa 32 bits, descarta os valores do fim que sobram da divisão (42 de 2^32 com 94 caracteres) e sorteia de novo: cada caractere tem exatamente a mesma chance.

    Com Um de cada ligado, a senha inteira é sorteada de novo até ter pelo menos um caractere de cada conjunto. Trocar uma posição pelo conjunto que faltou daria viés; rejeitar a senha inteira deixa todas as senhas válidas com a mesma chance. O custo é pequeno: em 16 caracteres, a força cai de 104,9 para 104,6 bits, 0,28 bit, porque as senhas sem algum conjunto saem da conta.

    Tudo acontece no seu navegador: a senha não passa por servidor, não entra na URL nem no armazenamento local. A página publicada também não traz senha pronta: o sorteio só começa quando ela abre no seu navegador, então cada visita tem a sua.

    Entropia e força em bits

    A força de uma senha sorteada é exata: é o log₂ do número de senhas que o gerador poderia ter dado. 16 caracteres de 94 dão 16 × log₂ 94 = 104,9 bits; 12 de 62 (letras e algarismos) dão 71,5; 6 palavras de uma lista de 4.096 dão 72; e 6 palavras do Diceware, de 7.776, dão 77,5. Cada bit a mais dobra o trabalho de quem tenta adivinhar.

    As faixas desta página: abaixo de 50 bits, fraca; de 50, razoável; de 70, forte; de 90 em diante, muito forte. O tempo para adivinhar conta a média, metade das possibilidades, em 3 cenários: um site com limite de 10 tentativas por segundo, um hash lento vazado (bcrypt, 10 mil por segundo) e um hash rápido vazado (MD5 ou SHA-1 em várias GPUs, 1 trilhão por segundo).

    Por isso o mesmo número de bits vale coisas muito diferentes. Uma senha de 8 caracteres com os 4 conjuntos tem 51,3 bits: levaria 4,4 milhões de anos contra o site, 4.448 anos com o hash em bcrypt e 23 minutos com o hash em MD5. Você não escolhe como o site protege a senha, então a margem precisa estar nela.

    Medidores que avaliam uma senha escolhida por alguém, como o zxcvbn, estimam o que uma pessoa costuma inventar: procuram palavras, datas e padrões de teclado. Aqui não há o que estimar: a senha foi sorteada, e a conta acima é exata. Avaliar uma senha que você já tem é outra ferramenta.

    A frase-senha em português

    A frase-senha sorteia palavras de uma lista própria de 4.096 palavras: cada uma vale 12 bits, porque 2^12 = 4.096. Todas têm de 4 a 8 letras, sem acento, para digitar em qualquer teclado; não há palavrão, e nenhuma palavra é o começo de outra, então mesmo com o separador Nenhum a frase só se lê de um jeito.

    A lista saiu do dicionário pt_BR do teclado do Android (AOSP, licença Apache 2.0), pelas palavras mais frequentes, com filtros: só letras de a a z sem k, w e y; sem palavras marcadas como ofensivas nem de sexo, violência, doença, etnia e religião; sem grafia de Portugal e sem plural quando o singular já está lá. A wordlist pt-br do Diceware ficou de fora: é GPL e não tem curadoria.

    Maiúsculas no começo das palavras não somam força: quem ataca sabe que a regra existe. O Número põe um algarismo no fim de uma das palavras e soma log₂(10 × palavras): com 6 palavras, 5,9 bits, porque são 10 algarismos em 6 posições. Para mais força, acrescente palavras: cada uma vale 12 bits, mais que o Número.

    Símbolos, ambíguos e sites exigentes

    Os símbolos padrão são os 32 caracteres ASCII visíveis que não são letra nem algarismo, a lista de caracteres especiais da OWASP (que conta também o espaço; aqui ele fica de fora). Ficar no ASCII evita surpresa: acento muda de lugar de um teclado para outro, no celular inclusive, e pode ser gravado em bytes diferentes (NFC ou NFD), e a “mesma” senha deixa de bater.

    Sem ambíguos tira 0, O, o, 1, l, I e |, os 7 que se confundem ao ler ou digitar: sobram 87 caracteres, e 16 deles com Um de cada dão 102,7 bits. Se o site recusa algum símbolo, apague-o do campo Símbolos; se aceita poucos, cole só esses.

    O NIST SP 800-63B rev. 4 pede pelo menos 15 caracteres quando a senha é o único fator, pelo menos 8 quando há outro fator (MFA), e que o site aceite pelo menos 64. Também desaconselha regras de composição (exigir símbolo, maiúscula) e troca periódica sem sinal de vazamento. Muitos sites ainda exigem essas regras; Um de cada as atende quase sem custo.

    No terminal, os equivalentes: openssl rand -base64 12 dá 16 caracteres de Base64, 16 × 6 = 96 bits; python3 -c 'import secrets; print(secrets.token_urlsafe(16))' dá 128 bits (16 bytes × 8) em 22 caracteres; e LC_ALL=C tr -dc 'A-Za-z0-9' </dev/urandom | head -c 16 dá 16 × log₂ 62 = 95,3 bits.

    Perguntas frequentes

    Este gerador é seguro? A senha sai do meu computador?
    Não sai. O sorteio usa crypto.getRandomValues, o gerador criptográfico do navegador, e acontece na sua máquina: a senha não vai para servidor, não entra na URL nem no armazenamento local, e não há link de compartilhamento. Só as opções (tamanho, conjuntos, quantidade) ficam lembradas neste navegador. A única coisa que a página baixa é a lista de palavras da frase-senha, um arquivo fixo do próprio site, igual para todo mundo.
    Quantos caracteres deve ter uma senha forte?
    Com sorteio de verdade, 12 é o piso: 12 caracteres com os 4 conjuntos já dão 78,1 bits. 16 caracteres dão 104,6 bits, longe de qualquer ataque de força bruta. O NIST pede pelo menos 15 quando a senha é o único fator de autenticação. Para senha de banco ou de conta de serviço, que ninguém digita, vá além: aqui o Tamanho chega a 128.
    Frase-senha ou senha com símbolos?
    Depende só dos bits, não da aparência: 6 palavras dão 72 bits e 8 dão 96; 16 caracteres de 94 dão 104,6. A frase é mais fácil de digitar e de ditar, boa para a senha do computador ou do gerenciador de senhas; a senha com símbolos cabe melhor em campo com limite de tamanho.
    O que são os bits de entropia e quanto basta?
    É o log₂ do número de senhas possíveis: 72 bits quer dizer 2^72 possibilidades, e cada bit a mais dobra o trabalho de quem ataca. Esta página chama de forte a partir de 70 bits e de muito forte a partir de 90. Com 72 bits, mesmo um hash rápido vazado, a 1 trilhão de tentativas por segundo, leva 75 anos em média.
    O site recusou a senha gerada: e agora?
    Leia a regra que ele mostra e ajuste as opções: se recusa algum símbolo, apague-o do campo Símbolos (ou cole só os que ele aceita); se tem limite de tamanho, diminua o Tamanho; se exige um caractere de cada tipo, deixe Um de cada ligado. Gere de novo e confira os bits: tirar símbolos e encurtar a senha baixam a força.
    Preciso trocar a senha de tempos em tempos?
    Não sem motivo. O NIST desaconselha a troca periódica: ela leva a senhas previsíveis, que mudam só um algarismo no fim. Troque quando houver sinal de vazamento. O que protege de verdade é uma senha diferente e sorteada para cada conta, num gerenciador de senhas, e um segundo fator onde houver.

    Ferramentas relacionadas

    • Escolha o formato e o tamanho em bytes: o token é sorteado no seu navegador, com a força em bits e o comando equivalente no terminal.

    • Digite um texto ou abra um arquivo: os sete hashes aparecem juntos, em hex ou Base64, e você confere com o hash esperado. Tudo no navegador.

    • Cole texto ou Base64: o sentido é detectado sozinho, acentos e emoji saem certos e o erro mostra a posição exata.

    Atualizado em .