Documentação Técnica v2.0
Especificações do algoritmo híbrido (Matemática + Heurística) e arquitetura Serverless do BP PassGuard.
Arquitetura Privacy-First
Diferente de validadores tradicionais que enviam senhas para um servidor backend, o BP PassGuard opera em modelo 100% Client-Side.
- Sem Backend: Não há banco de dados ou endpoints API, eliminando riscos de vazamento em trânsito (Man-in-the-Middle) ou repouso.
- Processamento Local: Todo o cálculo matemático ocorre no navegador do usuário via JavaScript (V8 Engine).
- Persistência Volátil: O histórico é salvo no `localStorage` do navegador, dando ao usuário total controle sobre seus dados.
1. O Algoritmo de Shannon
A base da pontuação é a fórmula de entropia da informação. Ela mede a "incerteza" matemática da senha baseada no tamanho do pool de caracteres.
Bits = Comprimento × log₂(Pool)
2. Heurística e "Smart Cap"
A matemática pura pode ser enganada (ex: "aaaaaaaa" tem alta entropia matemática se considerado aleatório, mas é péssima na prática). Por isso, implementamos uma camada de Sanidade Heurística.
O sistema aplica penalidades e define um Teto Máximo (Cap) para a nota caso detecte padrões humanos ruins.
Lógica de Penalidades (JavaScript)
// Exemplo simplificado do entropy.js
getPenalties: (password) => {
let penalty = 0;
let cap = 999; // Sem limite inicial
// 1. Dicionário (ex: "123456", "password")
if (commonPasswords.includes(password)) {
return { score: 1000, cap: 0 }; // Força nota ZERO
}
// 2. Repetições (ex: "eeeeeeee")
if (/^(.)\1+$/.test(password)) {
return { score: 1000, cap: 10 }; // Força nota MÁXIMA de 10 bits
}
// 3. Padrões de Teclado (ex: "qwerty")
if (keyboardPatterns.includes(password)) {
penalty += 50;
cap = 30; // Limita a categoria "Fraca"
}
return { score: penalty, cap: cap };
}
Modelo de Dados (LocalStorage)
O histórico de análises é armazenado no navegador sob a chave bp_passguard_history. Armazenamos apenas metadados, nunca a senha em texto plano.
Estrutura JSON
[
{
"id": 1709234001, // Timestamp único
"bits": 45.50, // Pontuação de Entropia
"label": "Razoável", // Classificação
"date": "14/12/2025" // Data legível
},
{
"id": 1709234055,
"bits": 12.00,
"label": "Muito Fraca",
"date": "14/12/2025"
}
]