Entrada
>
Ferramenta educacional: a senha é exibida em texto puro para fins de aprendizado — não utilize uma senha real.
Reticulado de estados — máscara de classes (B⁴)
minúscula
maiúscula
número
especial
Cada nó é o estado (mascara em 4 bits: MIN·MAI·NUM·ESP). Subir uma aresta = encontrar uma classe nova.
O estado 1111, no topo, indica que as quatro classes já apareceram.
Contador de comprimento (saturado em 8)
O estado 8+ é absorvente: depois de 8 caracteres lidos, o contador não avança mais.
Execução do autômato
Definição formal
Alfabeto Σ
MIN — Letras minúsculas (a–z)
MAI — Letras maiúsculas (A–Z)
NUM — Dígitos (0–9)
ESP — Caracteres especiais (qualquer símbolo fora de A-Za-z0-9)
Linguagem L
L = { w ∈ Σ* | w contém ≥1 minúscula, ≥1 maiúscula, ≥1 dígito, ≥1 especial, e |w| ≥ 8 }
Regex equiv.
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).{8,}$
Aceitação
F = { (mascara=1111, comprimento=8+) }
Resultado
Força da senha: —
Material didático — Linguagens Formais, Autômatos e Grafos.
Processamento da senha ocorre no servidor (PHP), via
api/validar.php.