Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
Uma senha vinda do gerador criptográfico de números aleatórios do seu navegador, com o comprimento e os conjuntos de caracteres que você escolher. Ela nasce na sua própria máquina e não é enviada a lugar nenhum — numa senha isso não é gentileza, é o ponto inteiro: uma que atravessou a rede para chegar até você é uma que outra pessoa pôde ver.
Deixa de fora l, I, 1, O e 0. Útil se você precisar ler na tela, e custa alguns bits.
Como funciona
Os caracteres são sorteados com `crypto.getRandomValues`, o gerador criptográfico do navegador, alimentado pela reserva de entropia do sistema operacional. A alternativa, `Math.random`, existe em todo navegador e está descartada aqui: o algoritmo é público, o estado interno é pequeno e reconstruir esse estado a partir de algumas saídas é um problema resolvido, com código publicado. Um gerador construído sobre ele produz senhas cujo espaço de chaves real é o tamanho desse estado, por mais longa que a senha pareça.
Olhando, não dá para distinguir. É justamente por isso que vale dizer qual está em uso, e por isso existe neste projeto um teste que falha se `Math.random` aparecer naquele arquivo.
Transformar um byte aleatório em caractere aleatório costuma ser escrito como `byte % tamanho`, e isso é sutilmente errado sempre que 256 não é divisível pelo tamanho do alfabeto. Com vinte e seis letras, os bytes de 0 a 255 cobrem `a` a `v` dez vezes cada e `w` a `z` apenas nove: as primeiras vinte e duas saem cerca de 11% mais vezes.
É um defeito pequeno e é real, e é de longe o mais comum em geradores desse tipo. A correção é descartar os valores dessa cauda curta e sortear de novo, o que custa um laço e menos de dois sorteios por caractere em média. É o que acontece aqui.
A entropia é dada em bits e é o jeito honesto de descrever a força de uma senha: cada bit dobra o número de tentativas necessárias. Vinte caracteres com os quatro conjuntos dão cerca de 130 bits, ou seja, aproximadamente 2^130 possibilidades — um número sem significado físico, que é justamente a ideia.
Isso também torna as trocas visíveis. Tirar os símbolos de uma senha de vinte caracteres custa uns 11 bits. Tirar os caracteres parecidos custa uns 3. Somar quatro caracteres ganha uns 26. É por isso que comprimento vence complexidade sempre: esses quatro caracteres a mais valem mais do que todos os símbolos do teclado, e são mais fáceis de aceitar numa senha que você nunca vai digitar à mão.
Se você marcar dígitos, a senha tem um dígito. Isso não é automático: sortear vinte caracteres de um alfabeto misto deixa uma chance real de não sair nenhum de um dos conjuntos, e o resultado é uma senha que uma política rejeita e que você precisa gerar de novo.
Os caracteres que garantem isso são colocados primeiro e depois tudo é embaralhado, senão toda senha começaria com uma minúscula, depois uma maiúscula, depois um dígito, depois um símbolo — um padrão que tira os primeiros caracteres do problema de quem tenta adivinhar. A garantia custa uma fração de bit, bem abaixo do arredondamento do número mostrado.
Uma senha forte que você reaproveita é uma senha fraca, porque a força dela deixa de importar no instante em que qualquer site que a tenha for invadido. O valor de gerar está em cada conta ter a sua, e isso só funciona se alguma coisa se lembrar delas por você.
Então use um gerenciador de senhas, qualquer um, inclusive o que já vem no seu navegador. O gerador daqui serve para o momento em que você está diante de um formulário; o que o torna útil é o resultado ir parar em algum lugar onde você vai encontrá-lo de novo.
Não, e esta é a ferramenta do site em que isso mais importa. Ela é gerada pelo seu próprio navegador e só existe na página até você copiar. Nada é enviado, nada é registrado e não há conta. Um gerador de senhas que roda num servidor é um gerador cuja saída outra pessoa viu.
Dezesseis é um piso razoável e vinte é melhor. Passando de uns trinta não há mais nada a ganhar contra nenhum atacante realista, então o tamanho só é limitado pelo que o sistema aceita. Como você deveria colar em vez de digitar, comprimento não custa nada.
Só se você for ler a senha numa tela para digitar em outro lugar: numa televisão, de uma folha impressa, num aparelho sem área de transferência. Isso encolhe o alfabeto e custa alguns bits, que o número de entropia mostra assim que você liga a opção.
Em nenhum sentido que importe. Com os ajustes padrão há cerca de 2^130 resultados possíveis, então uma repetição não acontece nem que cada pessoa viva gerasse uma por segundo durante toda a idade do universo.
É, sem conta e sem limite de quantas você gera. Roda na sua máquina, então não nos custa nada deixar você apertar o botão de novo.