O código desta página não rodou.

Abrir o index.html direto de uma pasta bloqueia os módulos de JavaScript, então não vai acontecer nada quando você escolher um comprimento. Sirva a pasta por http:

powershell -ExecutionPolicy Bypass -File serve.ps1

Depois abra http://localhost:8080/.

Senha e frase secreta — forte e aleatória, gerada no seu navegador

Gerada aqui, pelo seu próprio navegador, e não enviada para lugar nenhum. Nada é guardado e não existe histórico.

Idioma: Português
Ver o código-fonte
Seus senhas e frases secretas são processados no navegador. Sem envio para processamento.

Cada caractere vem de crypto.getRandomValues, o gerador criptográfico do próprio navegador, e cada palavra vem de uma lista que fica nesta pasta como src/wordlist.js. Não existe um fetch, um XMLHttpRequest nem um sendBeacon em lugar nenhum de src/, então não há caminho pelo qual uma senha gerada aqui possa chegar até nós nem até ninguém. Também não se guarda nada, e por isso recarregar esta página destrói todas as senhas que ela já mostrou para você.

Verificação ao vivo: verificando…

Offline: verificando…

Você não precisa acreditar na nossa palavra: abra as ferramentas de desenvolvedor, olhe a aba Rede e clique em Gerar outra quantas vezes quiser. Nenhuma requisição leva um caractere do resultado. Ou tire o computador da internet e continue gerando.

1 Escolha o que gerar

Uma senha é uma sequência de caracteres: curta, forte, e algo que você vai guardar num gerenciador de senhas. Uma frase secreta são palavras sorteadas de uma lista: mais longa de digitar, bem mais fácil de lembrar e de falar em voz alta, e é a resposta certa para os poucos segredos que você precisa digitar de cabeça, como o do próprio gerenciador, o do notebook e o código de recuperação do celular.

2 Ajuste

Comprimento O comprimento ganha de todo o resto. Somar um caractere a um alfabeto de noventa e quatro vale mais do que qualquer regra sobre quais caracteres precisam aparecer nele.

Quais símbolos Estes: . O espaço, as duas aspas, a crase e a barra invertida ficam de fora dos dois conjuntos de propósito: são tão aleatórios quanto os outros, e são justamente eles que transformam uma senha que funciona em um chamado no suporte.

Pelo menos um caractere de cada conjunto Para o formulário de cadastro que insiste. Deixa a senha mais fraca, não mais forte, porque descarta parte das senhas que antes eram possíveis; a leitura abaixo já subtraiu isso.

Sem caracteres parecidos entre si Tira I l 1 | e O 0, para uma senha que precisa ser lida numa tela e digitada em outro lugar. Acrescente um ou dois caracteres de comprimento para pagar por isso.

Palavras Quatro palavras é a imagem conhecida e hoje está abaixo do que vale a pena usar. Seis é o piso sensato para qualquer coisa que importe, e sete para a senha que guarda todas as outras.

Lista de palavras A lista longa são cinco lançamentos de dado por palavra, ou seja 12,9 bits cada. A curta são quatro lançamentos e 10,3 bits, toda palavra dela tem cinco letras ou menos e nenhuma é o começo de outra: é a que se usa para uma frase secreta que você vai digitar no controle da televisão ou ler na tela do celular.

Entre as palavras O dígito aleatório é o único daqui que acrescenta alguma coisa, porque é uma escolha nova em cada junção e não uma regra. Os outros dependem do que a caixa onde você vai colar aceita: o espaço é o mais legível e o que mais costuma ser estropiado.

Maiúsculas Nenhuma das três acrescenta força: qual delas está valendo é uma regra que qualquer um lê nesta página, então não é algo que um atacante precise adivinhar. Está aqui por causa do formulário que exige uma maiúscula.

Terminar com um símbolo Para esse mesmo formulário insistente. O dígito é uma escolha de verdade e vale 3,3 bits; o símbolo é sorteado entre oito e vale 3.

Caracteres para sortear

3 Leve com você

Ou gere várias de uma vez A lista baixada é um arquivo de texto simples que esta página escreve a partir do que já está na sua tela. Quem salva é o seu navegador, no seu próprio disco, e não há nada que mande isso para lugar nenhum. Ainda assim, um arquivo cheio de senhas no disco continua sendo um arquivo cheio de senhas: passe elas para um gerenciador de senhas e apague o arquivo.

— bits de entropia

Um atacante teria que percorrer — possibilidades para ter certeza de encontrar.

Do que essa estimativa parte

De que o atacante roubou o arquivo onde a sua senha está guardada e está chutando contra ele no equipamento dele a cem bilhões de tentativas por segundo, que é mais ou menos um rack de placas de vídeo contra uma função de hash rápida, do tipo que não para de aparecer em vazamentos. Contra uma função de hash de senha escolhida direito, bcrypt ou Argon2, esse mesmo equipamento faz alguns milhares por segundo e cada resposta acima fica uns vinte e cinco bits mais dura. Contra um formulário de login que responde dez vezes por segundo, nenhuma delas é alcançável.

O número é de propósito o pessimista, e é a quantidade de tentativas para ter certeza; o ataque médio encontra a resposta na metade, e é isso que a estimativa acima usa.

Aqui nada é lembrado

O que esta página gera nunca é guardado, nunca é listado e nunca é enviado. Não há histórico para apagar porque nenhum é mantido: recarregue a página e todas as senhas que ela já mostrou somem, inclusive da memória da própria página. As únicas cópias são as que você faz, ou seja, a área de transferência e o arquivo de texto, se você pediu um.

Ver como Markdown

Como gerar uma senha forte sem que nenhum site veja ela

  1. Escolha senha ou frase secreta. Uma senha é uma sequência de caracteres aleatórios: curta de guardar, chata de digitar, e exatamente o que serve para as centenas de contas que o seu gerenciador de senhas preenche por você. Uma frase secreta são palavras sorteadas de uma lista: mais longa, mas possível de lembrar e de falar em voz alta, que é do que você precisa para os poucos segredos que tem que digitar de cabeça, como o do próprio gerenciador, o do notebook e o código de recuperação do celular.
  2. Ajuste o comprimento, ou o número de palavras. Este é o ajuste que importa, e os outros em geral não. Vinte caracteres, ou seis palavras, é um piso razoável para qualquer coisa que valha a pena proteger; suba dali para a conta que permitiria redefinir todas as outras. A leitura de baixo se mexe enquanto você arrasta, então dá para ver o que cada caractere a mais rende.
  3. Ligue as regras em que o formulário vai insistir. “Pelo menos um de cada conjunto”, um dígito no fim, um símbolo da lista curta que todo site aceita. Nada disso deixa nada mais forte, e o primeiro deixa um pouco mais fraco, o que a página já subtraiu. Mas é assim que se passa por um formulário de cadastro sem gerar seis senhas seguidas.
  4. Leia o número, não a cor. Os bits são contados a partir dos ajustes que produziram a cadeia: o tamanho do alfabeto, o número de sorteios, e mais nada. Isso é uma medida de verdade, ao contrário do medidor de uma página de cadastro, que só consegue dar nota aos caracteres que tem na frente e não tem como saber se foi você ou um gerador que escolheu.
  5. Copie e guarde em algum lugar antes de sair. Aqui não existe histórico nem jeito de pedir de volta; recarregar a página destrói a senha. Cole primeiro no gerenciador de senhas e só depois no formulário de cadastro, para que quem precisa lembrar dela já esteja com ela antes que algo dê errado.
  6. Leve um lote, se precisar. O controle lá embaixo gera até cem de uma vez e salva como arquivo de texto simples, escrito por esta página a partir do que já está na sua tela. Serve para abrir contas em série ou distribuir acessos iniciais, e vale apagar o arquivo assim que elas estiverem em um lugar melhor: um arquivo cheio de senhas no disco continua sendo um arquivo cheio de senhas.

A versão longa

É seguro usar um gerador de senhas online? A suspeita certa, levada a sério: de onde vem o acaso de um navegador, o que uma página geradora poderia fazer de errado, e as verificações que dizem se a que está na sua frente consegue ficar com o que fabricou.

Perguntas

As senhas são enviadas para algum lugar ou ficam guardadas?

São geradas no navegador; o código não as envia nem mantém histórico. Copiar ou salvar é sua escolha. A estrutura comum pode guardar preferências e ajustes temporários de troca de idioma, mas não a saída secreta. CSP limita destinos, não prova conteúdo de solicitações permitidas. Confira código e tráfego.

De onde vem o acaso?

De crypto.getRandomValues, o gerador que os navegadores oferecem para uso criptográfico, alimentado e realimentado pela reserva de entropia do seu sistema operacional. É a mesma fonte de onde o navegador tira o material de chaves do TLS. Math.random não é usado em lugar nenhum desta ferramenta, e essa distinção não é implicância: Math.random é um gerador aritmético rápido cujo estado interno inteiro se reconstrói a partir de umas poucas saídas seguidas, de modo que um gerador de senhas construído em cima dele produz senhas que parecem aleatórias e que qualquer um que tenha visto uma delas consegue enumerar.

Uma senha gerada em um navegador é tão boa quanto uma de um programa instalado?

Quanto ao acaso, é: é a mesma fonte do sistema operacional nos dois casos, alcançada por uma porta diferente. O que muda é o que mais existe na sala. Uma aba do navegador convive com as suas extensões, e uma extensão com permissão para ler páginas consegue ler esta também. Isso vale para qualquer gerador na web, inclusive este, e é a razão honesta para usar o gerador embutido do seu gerenciador de senhas quando você tem um: é a mesma aritmética, em um processo com menos coisa em volta. Esta página é para quando você não tem um à mão.

Senha ou frase secreta, qual usar?

Uma senha para tudo o que um gerenciador digita por você, porque você nunca vai olhar para ela e comprimento ali não custa nada. Uma frase secreta para as poucas coisas que você precisa digitar de cabeça ou ditar em voz alta: a senha mestra do gerenciador, a chave de criptografia do disco, um aparelho que você configura de longe. Seis palavras da lista longa são 77 bits, mais forte do que uma senha aleatória de doze caracteres e muito mais fácil de acertar às quatro da manhã.

Qual deve ser o comprimento de uma senha?

Vinte caracteres do alfabeto inteiro dão cerca de 130 bits, bem além do ponto em que o comprimento deixa de ser o problema. Dezesseis já está ótimo. Doze é o piso para qualquer coisa cuja perda incomodaria, e é o piso, não a meta. Abaixo disso você está apostando que o site guardou a senha direito, aposta que vinte anos de avisos de vazamento desaconselham. O comprimento ganha de qualquer outro ajuste desta página: um caractere a mais rende mais do que qualquer regra sobre quais caracteres precisam aparecer.

De quantas palavras deve ser uma frase secreta?

Seis da lista longa, e sete se ela protege outras senhas. A famosa imagem de quatro palavras é de 2011, vale 51 bits e hoje está ao alcance de um ataque offline sério. Cinco dão 64. Seis dão 77, além do que um atacante vai gastar em uma conta comum. Cada palavra a mais da lista longa soma 12,9 bits, e as palavras são a única coisa que soma: os hifens e as maiúsculas não.

O que é um “bit”, e por que esta página conta os bits?

Um bit é uma duplicação. Sessenta bits quer dizer que havia 2^60 resultados igualmente prováveis que esta página poderia ter produzido, então quem sabe exatamente como ela funciona ainda tem essa quantidade para testar. É uma propriedade do processo, não da cadeia de caracteres: a página consegue dar o número exato porque foi ela quem escolheu e sabe quantas escolhas fez. É essa a diferença para a barrinha colorida de um formulário de cadastro, que lê os caracteres e chuta. Naquela barra, correct horse battery staple tira nota baixa e vale 44 bits, e P@ssw0rd! tira nota alta e não vale quase nada.

Por que “precisa conter um símbolo” enfraquece a senha?

Porque uma regra só consegue tirar possibilidades. Exigir pelo menos um caractere de cada conjunto descarta todas as senhas em que não caiu nenhum, e um conjunto menor de senhas possíveis é um conjunto menor para percorrer. O efeito é pequeno, cerca de meio bit num comprimento comum, e é real, e esta página subtrai ele em vez de citar o número que a favorece. Ele é calculado exato, contando as senhas que a regra de fato permite, e não as que ela descarta.

Que lista de palavras é essa, e faz diferença um atacante poder baixar ela?

São as listas diceware da Electronic Frontier Foundation, incluídas sem alteração: 7.776 palavras na longa e 1.296 na curta. Elas foram montadas exatamente para isso: nada ofensivo, sem homófonos, sem pares que grudados formem uma terceira palavra, e na lista curta nenhuma palavra que seja o começo de outra. E não, não faz diferença a lista ser pública: a força indicada aqui já assume que o atacante tem a lista, está lendo o código desta página e conhece todos os ajustes que você usou. A única coisa que ele não sabe é qual das 7.776 saiu de cada vez. É justamente essa suposição que torna o número confiável.

Uma frase secreta não é um ataque de dicionário esperando para acontecer?

Não quando as palavras são escolhidas assim. Um ataque de dicionário funciona contra frases que uma pessoa inventa, porque pessoas escolhem palavras que combinam, numa ordem que faz sentido, entre as poucas milhares que usam todo dia. Esta página escolhe cada palavra de forma independente e uniforme a partir de uma lista fixa, sem se importar se o resultado soa bem, que é justamente por que ele quase nunca soa bem. Um atacante que conheça a lista e o número de palavras continua tendo pela frente 7.776 elevado a esse número.

Consigo recuperar uma senha depois de sair da página?

Não, e é de propósito. Nada é anotado em lugar nenhum, então não há o que recuperar: nenhum painel de histórico, nenhuma lista de “geradas recentemente”, nenhum cache. Um gerador capaz de mostrar a senha da terça passada seria um gerador que a guardou, e guardada onde você alcança é guardada onde outra coisa alcança. Copie para um gerenciador de senhas antes de sair.

É seguro copiar para a área de transferência?

É o risco de sempre, e vale mais conhecer do que se preocupar. A área de transferência é compartilhada com tudo que roda no seu usuário, costuma durar até a próxima cópia, e em algumas configurações é sincronizada entre aparelhos. Isso é um bom motivo para colar logo onde a senha vai e copiar outra coisa depois, e não é motivo para digitar à mão uma senha mais fraca. Esta página não consegue ler a sua área de transferência: ela só consegue escrever nela, e só quando você aperta o botão.

Posso usar a mesma senha em mais de um lugar?

Não, e este é o único conselho desta página que vale mais do que todos os outros. Quase toda conta invadida é invadida com uma senha que antes estava certa em outro lugar: um site vaza, a lista é publicada, e o mesmo e-mail com a mesma senha é testado em tudo. Uma senha diferente por site transforma um vazamento em uma conta em vez de todas, e é esse o motivo para manter um gerenciador de senhas, não a força de nenhuma senha específica guardada nele.

É de graça, e preciso de uma conta?

É de graça, não tem conta, não tem login, não tem período de teste e não tem limite de quantas você gera. O site tem publicidade, que é o que paga por ele; aos anúncios não é entregue absolutamente nada sobre o que esta página gera, nem o comprimento nem a força.

Funciona offline?

Funciona. Carregue a página uma vez, desconecte da internet e ela continua gerando senhas. O acaso vem do seu próprio equipamento e a lista de palavras já está na página. Essa é também a forma mais simples de provar que nada é buscado nem enviado: um gerador que pedisse os números a um servidor pararia no instante em que você tirasse o cabo.