🔐 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. 🚀
Metadata
Release files for SmartSecurityPy 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| smartsecuritypy-1.0.1.tar.gz | 7.3 kB | Without provenance | Details for smartsecuritypy-1.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| smartsecuritypy-1.0.1-py3-none-any.whl | Python 3 | none | any | Details for smartsecuritypy-1.0.1-py3-none-any.whl |
Total release size: 14.3 kB
Release files / smartsecuritypy-1.0.1.tar.gz
| Download URL | smartsecuritypy-1.0.1.tar.gz |
|---|---|
| Size | 7.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
207050869472a5c589ca9189f58db574e1470a704f730ea9c2b6041ed8cb6d28
|
|
BLAKE2b-256 checksum How to use checksums |
df3fa925c7a85eeac150ece0584506bcfae01f6f8d300bd9a61d16480219422e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / smartsecuritypy-1.0.1-py3-none-any.whl
| Download URL | smartsecuritypy-1.0.1-py3-none-any.whl |
|---|---|
| Size | 7.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
658f26cb4b7a11c42b93b324cc541600abf070dc384944510cad64ac3cde2750
|
|
BLAKE2b-256 checksum How to use checksums |
8aa87b2b9a7a688f16860e983a837c95d7b0f7953f27a4f0fd8c08792e1057c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Security for SmartSecurityPy 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.