Como foi construído

Documentação técnica

A engenharia do PassGuard: um medidor de força de senha que roda 100% no navegador — sua senha não sai da máquina, e nada é salvo.

1. Entropia de charset

O ponto de partida é a incerteza em bits: o tamanho do alfabeto usado (R) elevado ao comprimento (L).

E = L × log₂(R)
// R = 26(a-z) + 26(A-Z) + 10(0-9) + 33(símbolos)

2. Por que a conta bruta engana

Password1! tem ~65 bits na conta bruta — pareceria forte. Mas um ataque real não testa caractere por caractere: testa palavras + sufixos primeiro. O espaço de busca real é minúsculo.

Por isso o motor detecta e desconta padrões humanos, limitando a nota (um cap) quando encontra:

  • Palavra comum + sufixo (de-leet: P4sspass) — estima ~14 bits da lista + o resto.
  • Sequências (abcd, 4321) por varredura de código de caractere.
  • Padrões de teclado (qwerty, asdf).
  • Repetição (aaaaaa) e anos (1990, 2024).

3. Três velocidades de ataque

A mesma senha leva tempos absurdamente diferentes dependendo de como o site a guarda. Mostramos os três — porque o número único mente:

online (rate-limit) ~ 1.000 tentativas/s
vazamento + GPU     ~ 100.000.000.000/s   (hash rápido, MD5/NTLM)
hash forte (bcrypt) ~ 10.000/s            (mesmo vazado)

Usamos o tempo esperado (metade do espaço de busca).

4. Limites honestos

  • Não é um dicionário completo: pegamos as bases mais abusadas. Uma frase-senha longa e incomum pode ser superestimada — mas ela já é forte.
  • Sem servidor: tudo é JavaScript no cliente; a senha não é enviada nem salva.
  • As velocidades são estimativas de referência — ataques reais variam com hardware e algoritmo.