MiServe DevTools

Os seus autocolantes

Fixe aqui as ferramentas. Ficam guardadas neste navegador.

Gerador de palavras-passe e segredos

Gere palavras-passe aleatórias, frases-passe e tokens de API, com a entropia de cada opção indicada em bits.

Caracteres a usar, com pelo menos um de cada tipo

Entropia

Segredos gerados

Funciona no seu navegador. Nada do que cola é enviado.

Sobre esta ferramenta

Como os segredos são gerados

Cada carácter, palavra e byte vem de crypto.getRandomValues, o gerador de números aleatórios criptográfico do navegador. O Math.random não é usado em lado nenhum, porque não foi concebido para segredos e o seu resultado pode ser previsto.

Escolher de um conjunto exige cuidado. O atalho habitual de pegar num byte aleatório e calcular o resto da divisão pelo tamanho do conjunto torna alguns caracteres ligeiramente mais prováveis do que outros sempre que o tamanho do conjunto não divide 256 exatamente. Esta ferramenta usa antes amostragem por rejeição: aproveita apenas os bits aleatórios de que o conjunto precisa, e um valor que fique fora do conjunto é descartado e sorteado de novo. A regra de pelo menos um carácter de cada tipo é aplicada da mesma forma. Uma palavra-passe a que falte um dos tipos é descartada por inteiro, por isso todas as palavras-passe que cumprem a regra são igualmente prováveis.

Os segredos existem apenas nesta página. Não são enviados para lado nenhum nem guardados no navegador, e desaparecem quando volta a gerar ou fecha o separador.

O que significa o número da entropia

A entropia em bits é o logaritmo de base 2 do número de resultados igualmente prováveis, por isso cada bit a mais duplica o trabalho de adivinhar. O valor é calculado a partir das opções efetivamente em uso e arredondado por defeito a um bit inteiro. Com os quatro tipos de carácter, o conjunto tem 87 caracteres, e um comprimento de 20 dá 128 bits. Evitar caracteres parecidos reduz o conjunto a 82, e o mesmo comprimento dá 126. A lista das frases-passe tem 1024 palavras, ou seja, exatamente 10 bits por palavra: cinco palavras são 50 bits, oito são 80. Um token tem 8 bits por byte, por isso 32 bytes são 256 bits.

O número descreve o gerador, não o aspeto do resultado. Só é válido porque a escolha foi aleatória. Uma palavra-passe inventada por uma pessoa costuma ter muito menos entropia do que o seu comprimento sugere. E uma palavra-passe forte reutilizada em dois sites fica exposta em ambos assim que um deles a deixar escapar.

Que tipo escolher

Use caracteres aleatórios para tudo o que um gestor de palavras-passe vai guardar e escrever por si. Use uma frase-passe para os poucos segredos que tem de memorizar ou escrever à mão, como a palavra-passe do próprio gestor ou de um disco encriptado, e acrescente palavras em vez de truques para a tornar mais forte. Use um token para segredos que só o software lê: chaves de API, segredos de sessão, chaves de assinatura para HMAC ou JWT. O hex usa apenas dígitos e as letras de a a f. O Base64url leva os mesmos bytes em menos caracteres, e nenhum deles precisa de escape num URL.

A opção de evitar caracteres parecidos ajuda quando uma palavra-passe é lida em voz alta ou copiada de um papel. O conjunto de símbolos deixa de fora as aspas, a barra invertida, o acento grave, os sinais de menor e maior e o espaço, que costumam estragar comandos da shell e ficheiros de configuração. Símbolos como $, & e ! continuam no conjunto, por isso ponha a palavra-passe entre plicas quando a passar numa linha de comandos.

Perguntas

É seguro gerar uma palavra-passe numa página web?

Esta página gera-a no seu dispositivo, com o gerador de números aleatórios criptográfico do navegador, e não envia nem guarda o resultado. O que não pode garantir é o próprio dispositivo: malware ou uma extensão maliciosa do navegador podem ler o que uma página mostra. Se usa um gestor de palavras-passe, o gerador integrado guarda a nova palavra-passe no mesmo passo.

Que comprimento deve ter uma palavra-passe?

Conte bits, não caracteres. Com os quatro tipos de carácter, 12 caracteres dão 76 bits e 16 dão 102, o que é forte para a palavra-passe de uma conta. Para uma chave ou um segredo de API, aponte para 128 bits ou mais: 20 caracteres, ou um token de 16 bytes ou mais.

Uma frase-passe é tão forte como uma palavra-passe aleatória?

Depende apenas dos bits. Cinco palavras desta lista são 50 bits, mais ou menos o mesmo que 8 caracteres totalmente aleatórios, e dez palavras são 100 bits, perto de 16 caracteres aleatórios. Uma frase-passe é mais longa para a mesma força, mas muito mais fácil de escrever e de memorizar.

O que devo usar para uma chave de API ou um segredo de sessão?

Use o modo token com 32 bytes, ou seja, 256 bits, e nunca menos de 16 bytes. Guarde o valor num gestor de segredos ou numa variável de ambiente, não no código-fonte, e substitua-o se alguma vez aparecer num log, num chat ou num repositório.

Mais ferramentas de Hash