quebra média em GPU offline ≈ 10^11 years
O que faz
Gera senhas criptograficamente aleatórias usando o CSPRNG do Web Crypto (crypto.getRandomValues) com rejection sampling, então cada caractere é sorteado uniformemente do conjunto de caracteres selecionado - sem viés de módulo, sem atalhos previsíveis. Cada sorteio é independente e acontece inteiramente no seu navegador.
Para cada senha, mostra ao vivo a entropia em bits (comprimento × log₂(charset)) e a classifica em um de cinco níveis - muito fraca, fraca, razoável, forte, muito forte - num medidor de 5 segmentos. Abaixo do medidor fica o número de destaque: o tempo médio para quebrar a senha contra um ataque offline de GPU (10¹⁰ tentativas/segundo), calculado como 2^(bits−1) / taxa - o tempo esperado, ou seja, metade do espaço de chaves.
Ative Pro para revelar a camada de análise: a fórmula de entropia detalhada (comprimento × log₂(charset) = N bits), uma curva de tempo-de-quebra vs comprimento plotada para o cenário de GPU offline, e uma tabela de ataque de quatro linhas que vai de online com limitação (100/h) até offline com GPU rápida (10¹⁰/s).
Como usar
- Defina o Length com o slider (4-64 caracteres; marcações em 8, 16, 24, 32, 48, 64).
- Ative os conjuntos de caracteres desejados:
A-Z,a-z,0-9,!@#(símbolos). Pelo menos um precisa estar ativo. - Opcionalmente ative no O0Il1 para remover do conjunto os caracteres visualmente ambíguos (
O,0,I,l,1). - Toque em New para um novo sorteio, ou Copy para copiar a senha atual.
- Leia o medidor de força e o tempo médio de quebra em GPU offline abaixo dele.
- Ative Pro para a fórmula de entropia, a curva de tempo-de-quebra vs comprimento e a tabela de ataque de 4 cenários.
Exemplos
Entropia é comprimento × log₂(charset). Os quatro conjuntos de caracteres somam 88 caracteres (26 minúsculas + 26 maiúsculas + 10 dígitos + 26 símbolos).
- 16 caracteres, A-Z + a-z + 0-9 (charset 62):
16 × log₂(62) ≈ 95,3 bits→ forte (4 / 5 segmentos). Tempo médio de quebra em GPU offline ≈2^94 / 10¹⁰ ≈ 1,98 × 10¹⁸ s ≈ 6,3 × 10¹⁰ anos- a ferramenta exibe isso como10^11 years. - 16 caracteres, os quatro conjuntos incl. símbolos (charset 88):
16 × log₂(88) ≈ 103,4 bits→ muito forte (5 / 5 segmentos). - 8 caracteres, só minúsculas (charset 26):
8 × log₂(26) ≈ 37,6 bits→ fraca (2 / 5 segmentos). - Distribuição de cenários Pro a 95 bits (tempo médio,
2^94 / taxa): online com limitação (100/h) →10^22 years; online sem limitação (10/s) →10^20 years; offlinehashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
lento (10⁴/s) →10^17 years; offline GPU rápida (10¹⁰/s) →10^11 years.
Bom saber
- Privado por design: a geração usa
crypto.getRandomValueslocalmente - a senha nunca sai do seu navegador, e o modo Pro é matemática pura (sem rede). - Sem viés de módulo: cada índice de caractere é sorteado via rejection sampling contra o maior múltiplo do tamanho do charset que cabe no intervalo Uint32 de 2³², e depois reduzido - nunca
random % charset.length. - Média, não pior caso: os tempos de quebra são o tempo esperado (
2^(bits−1) / taxa- metade do espaço de chaves). Um atacante sortudo poderia terminar antes; uma varredura do espaço completo levaria aproximadamente o dobro. - Entropia teórica: a pontuação assume um sorteio uniforme aleatório, o que o CSPRNG garante. Para senhas escolhidas por humanos ou reutilizadas, use o Password Strength Analyser (zxcvbn) - ele detecta palavras de dicionário, substituições e padrões que a entropia pura não captura.
- Cinco níveis: muito fraca (< 28 bits), fraca (28-44), razoável (45-69), forte (70-99), muito forte (≥ 100).
- Compartilhável: comprimento, interruptores de conjuntos de caracteres, a flag
no O0Il1e o switch Pro são codificados na URL (?len=…&upper=1&pro=1…), então um link reproduz a configuração exata. - Ferramentas relacionadas: Password Strength Analyser, Token Generator.