Gerador de Senhas
Gere senhas aleatórias fortes com suas próprias regras de comprimento e caracteres, e veja a entropia delas. Funciona totalmente no seu navegador: nada é enviado a nenhum servidor.
Deixa de fora 0, O, 1, l e I, fáceis de confundir.
Selecione pelo menos um tipo de caractere
Como este gerador funciona
Cada caractere vem do gerador de números aleatórios criptográfico do seu navegador, a mesma fonte usada para chaves TLS, e não do Math.random. Sorteios que cairiam fora de um múltiplo inteiro do tamanho do alfabeto são descartados e refeitos, então nenhum caractere é nem um pouco mais provável que outro: um viés sutil aqui é o que torna mais adivinháveis senhas que de outra forma seriam longas. Nada é gerado em um servidor, nada é registrado e nada é enviado a lugar nenhum. Recarregue a página e as senhas que você viu somem para sempre.
Quanta entropia é suficiente?
A entropia mede quantas tentativas um atacante precisa, em média, expressa em bits: cada bit extra dobra esse número. Depende apenas do comprimento e do tamanho do conjunto de caracteres, nunca de a senha 'parecer' aleatória.
Adivinhável por um ataque offline em minutos. Não serve para nada.
Aguenta ataques casuais, não um banco de senhas vazado.
Um alvo razoável para uma conta que importa.
Fora do alcance da força bruta com o hardware atual e o previsível.
O número mostrado por esta ferramenta é um limite superior: com 'pelo menos um de cada tipo' ativado, os caracteres garantidos restringem um pouco o espaço. A diferença é uma fração de bit em comprimentos normais, e a opção vale a pena quando um site impõe regras de composição.
Exemplos
Gerar uma senha corretamente em código significa usar a fonte aleatória criptográfica, não a de uso geral:
const bytes = new Uint32Array(1);
crypto.getRandomValues(bytes);
// reject and redraw above the largest multiple of the alphabet sizeimport secrets, string
alphabet = string.ascii_letters + string.digits
"".join(secrets.choice(alphabet) for _ in range(20))SecureRandom random = new SecureRandom();
int index = random.nextInt(alphabet.length());import "crypto/rand"
n, _ := rand.Int(rand.Reader, big.NewInt(int64(len(alphabet))))$index = random_int(0, strlen($alphabet) - 1);LC_ALL=C tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 20Casos de uso
Contas de serviço e credenciais de API
Credenciais entre máquinas nunca são digitadas por uma pessoa, então não há razão para serem curtas ou memorizáveis. Gere a string mais longa que o outro sistema aceitar e guarde em um gerenciador de segredos.
Senhas de banco de dados e de administração
Gere sem símbolos quando a senha tiver que sobreviver a uma connection string, um arquivo YAML ou um comando de shell, onde as regras de aspas podem quebrá-la.
Wi-Fi e frases compartilhadas
Ative 'excluir caracteres ambíguos' para qualquer coisa que alguém vá ler de uma tela ou de um cartão impresso. Uma senha que não pode ser transcrita corretamente acaba sendo trocada por outra mais fraca.
Preencher entradas em um gerenciador de senhas
Gere um lote, use uma, e deixe o resto desaparecer ao fechar a aba. Útil quando você está criando várias contas de uma vez.