🔐 Biblioteca de utilidades para hash de senha, criptografia e JWT em Python
Project description
🔐 SmartSecurityPy
SmartSecurityPy é uma biblioteca Python leve e poderosa para tarefas de segurança como hash de senha, criptografia simétrica e validação de JWTs. Ideal para APIs, backends e projetos que precisam de proteção de dados sensíveis.
⚙️ Instalação
pip install SmartSecurityPy
Requer Python 3.7 ou superior
✨ Funcionalidades
🔑 Hash de Senhas com Bcrypt
from SmartSecurityPy import hasher
hashed = hasher.hash_password("minha_senha_segura")
print(hashed)
# Verificação
autenticado = hasher.verify_password("minha_senha_segura", hashed)
print(autenticado) # True
🔒 Criptografia e Descriptografia com Fernet
from SmartSecurityPy import crypto
# Gera uma chave segura
key = crypto.generate_key()
# Criptografa uma mensagem
mensagem = "dado confidencial"
token = crypto.encrypt_message(mensagem, key)
# Descriptografa
original = crypto.decrypt_message(token, key)
print(original) # "dado confidencial"
🪙 JWT (JSON Web Tokens)
from SmartSecurityPy import jwt_handler
# Cria um token JWT
data = {"user_id": 123, "role": "admin"}
token = jwt_handler.create_token(data, expires_in_minutes=30)
# Decodifica o token
decoded = jwt_handler.decode_token(token)
print(decoded)
# Verifica se é válido
print(jwt_handler.is_token_valid(token)) # True
🔍 Validação de Força de Senha
from SmartSecurityPy import PasswordValidator
# Cria uma instância do validador
validator = PasswordValidator()
# Valida uma senha
result = validator.validate_password("minha_senha123")
print(f"Score: {result.score}") # Pontuação de 0-100
print(f"É forte? {result.is_strong}") # True/False
print(f"Feedback: {result.feedback}") # Lista de sugestões de melhoria
# Obter sugestões específicas para melhorar a senha
suggestions = validator.get_password_suggestions("senha_fraca")
print(f"Sugestões: {suggestions}")
✨ Características da Validação de Senha
-
🎯 Sistema de Pontuação (0-100)
- Comprimento mínimo (8 caracteres): +20 pontos
- Comprimento extra (12+ caracteres): +10 pontos
- Cada tipo de caractere (maiúscula, minúscula, número, especial): +15 pontos
- Penalidades para senhas comuns: -30 pontos
- Penalidades para sequências/repetições: -10 pontos cada
-
🚦 Critérios de Validação
- Comprimento mínimo obrigatório
- Presença de letras maiúsculas e minúsculas
- Inclusão de números
- Uso de caracteres especiais
- Verificação contra senhas comuns
- Detecção de sequências (ex: "123", "abc")
- Identificação de repetições (ex: "aaa")
-
💡 Feedback Inteligente
- Sugestões específicas para melhorar a senha
- Identificação de pontos fracos
- Recomendações de melhoria
- Análise detalhada da força da senha
-
🛡️ Recursos de Segurança
- Base de senhas comuns para comparação
- Detecção de padrões inseguros
- Avaliação de complexidade
- Recomendações baseadas em boas práticas
📁 Estrutura do Projeto
SmartSecurityPy/
├── SmartSecurityPy/
│ ├── __init__.py
│ ├── hasher.py # 🔑 Hash de senha
│ ├── crypto.py # 🔒 Criptografia simétrica
│ └── jwt_handler.py # 🪙 Geração e validação de JWT
│
├── tests/
│ ├── test_hasher.py
│ ├── test_crypto.py
│ └── test_jwt_handler.py
│
├── setup.py
├── pyproject.toml
├── README.md
└── LICENSE
🧪 Testes
Execute os testes com pytest:
pytest tests/
🧠 Autor
Roberto Lima
🔗 GitHub: robertolima-dev
📧 Email: robertolima.izphera@gmail.com
💬 Contato
- 📧 Email: robertolima.izphera@gmail.com
- 💼 LinkedIn: Roberto Lima
- 💼 Website: Roberto Lima
- 💼 Gravatar: Roberto Lima
⭐ Gostou do projeto?
Deixe uma ⭐ no repositório e compartilhe com a comunidade! 🚀✨
git clone https://github.com/robertolima-dev/SmartSecurityPy.git
cd SmartSecurityPy
pip install -e .
🌟 O que este README oferece?
- 🎯 Descrição clara do projeto e seu propósito.
- 🛠 Instruções detalhadas de instalação e uso prático.
- 🏗 Estrutura do projeto para facilitar a navegação.
- 📝 Licença e informações do autor para transparência.
📄 Licença
MIT License - use livremente com reconhecimento. 🚀
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smartsecuritypy-1.0.0.tar.gz.
File metadata
- Download URL: smartsecuritypy-1.0.0.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e541d01b7cce3af0f823b417a860d05ff55ab4f37abd5136f90f5ac487ef7dca
|
|
| MD5 |
d4c5a05d5eda5e59f136918b969be80d
|
|
| BLAKE2b-256 |
47b03c3f0d03d642081daaf4fc3258d0d9e71f2294bc3d6d47a19b285a327766
|
File details
Details for the file smartsecuritypy-1.0.0-py3-none-any.whl.
File metadata
- Download URL: smartsecuritypy-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
011f77bfd804089dbaaf000d7de0b7075c1d6fc9f393e579e69a54ba9524430b
|
|
| MD5 |
68f05371eb6110a39c88c7300acfd231
|
|
| BLAKE2b-256 |
78cc92648728d57e2864bd3173f50880e38c693e06532f4d68864b6a40da5507
|