O SecCheck é uma aplicação web e biblioteca Enterprise-Grade desenvolvida em PHP 8.1+ para análise avançada de força de senhas, cálculo de entropia e estimativa de resistência contra ataques de força bruta.
Além do motor de análise (desenvolvido com princípios SOLID, Value Objects e Tipagem Estrita), o projeto conta com uma API REST, uma Interface de Usuário (Frontend) interativa e um Painel Administrativo para auditoria de testes realizados.
Este projeto foi desenvolvido como parte de um trabalho acadêmico (TCC) do curso de Análise e Desenvolvimento de Sistemas.
- ✅ Cálculo de entropia bruta e efetiva com penalidades heurísticas.
- ✅ Detecção automática do charset utilizado (incluindo suporte a Unicode/multibyte).
- ✅ Identificação de padrões inseguros:
- Sequências de teclado
- Repetições
- Palavras de dicionário
- ✅ Estimativa de tempo de quebra para cenários:
- Online Attack
- Offline Slow Hash
- Offline Fast Hash
-
🌙 Frontend Interativo
Interface moderna e responsiva em modo dark para testes de senha em tempo real via API. -
📊 Painel Administrativo
Dashboard seguro para visualização de:- Métricas de uso
- Scores médios
- Histórico de auditorias
-
💾 Persistência Segura
Registro apenas dos metadados das análises.
As senhas NÃO são armazenadas.
SecCheck/
│
├── config/ # Configurações de Banco de Dados (PDO)
├── database/ # Schemas SQL, Migrations e Seeds
├── public/ # Raiz do servidor web (Frontend)
│ ├── admin/ # Painel Administrativo
│ ├── api/ # Endpoints da API
│ │ └── validar-senha.php
│ └── assets/ # CSS, JS e imagens
├── src/ # Núcleo da biblioteca (SecCheck.php)
├── tests/ # Testes unitários
├── vendor/ # Dependências do Composer
├── composer.json
└── README.md
Siga os passos abaixo para rodar o projeto localmente utilizando o XAMPP.
Certifique-se de possuir:
- PHP 8.1 ou superior
- Apache ativo
- MySQL/MariaDB ativo
- XAMPP instalado
Inicie os módulos Apache e MySQL no painel de controle do XAMPP.
Clone ou extraia o projeto para a pasta htdocs:
C:\xampp\htdocs\seccheckAbra o phpMyAdmin:
http://localhost/phpmyadmin
Vá em Importar e execute os arquivos SQL nesta ordem:
database/schemas/criar_tabelas.sql
database/migrations/002_auditorias_score_0_100.sql
database/seeds/admin_inicial.sql
Acesse:
config/
Duplique:
database.example.php
Renomeie para:
database.php
Edite com suas credenciais:
<?php
return [
'dsn' => 'mysql:host=127.0.0.1;port=3306;dbname=seccheck;charset=utf8mb4',
'user' => 'root',
'pass' => '', // Senha em branco no XAMPP padrão
];Com Apache e MySQL rodando:
http://localhost/seccheck/public/
http://localhost/seccheck/public/admin/
Usuário:
admin
Senha:
password
⚠️ Importante: altere a senha padrão em ambientes de produção.
Caso tenha o Composer instalado:
composer installvendor/bin/phpunitO SecCheck foi projetado para não armazenar senhas reais.
Somente os seguintes metadados podem ser registrados:
- Entropia
- Score
- Tamanho da senha
- Complexidade
- Timestamp da análise
/config
/database
Configure o servidor web para apontar diretamente para:
/public
- Credenciais do banco de dados
- Senha do administrador padrão
password_hash($password, PASSWORD_ARGON2ID)- NIST SP 800-63B — Digital Identity Guidelines
- OWASP Password Storage Cheat Sheet
- Claude Shannon — Entropy Theory
- Dropbox zxcvbn Password Strength Estimator
- PHP 8.1+
- MySQL / MariaDB
- PDO
- HTML/CSS/JavaScript
- XAMPP
- PHPUnit
- Arquitetura SOLID
- Value Objects
- Tipagem Estrita
Projeto desenvolvido para fins acadêmicos e educacionais como parte do Trabalho de Conclusão de Curso (TCC) em Análise e Desenvolvimento de Sistemas.
Pedro Mauro
Desenvolvedor Backend PHP | Infraestrutura & Segurança | ADS