Skip to main content

🔐 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


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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smartsecuritypy-1.0.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smartsecuritypy-1.0.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

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

Hashes for smartsecuritypy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e541d01b7cce3af0f823b417a860d05ff55ab4f37abd5136f90f5ac487ef7dca
MD5 d4c5a05d5eda5e59f136918b969be80d
BLAKE2b-256 47b03c3f0d03d642081daaf4fc3258d0d9e71f2294bc3d6d47a19b285a327766

See more details on using hashes here.

File details

Details for the file smartsecuritypy-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for smartsecuritypy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 011f77bfd804089dbaaf000d7de0b7075c1d6fc9f393e579e69a54ba9524430b
MD5 68f05371eb6110a39c88c7300acfd231
BLAKE2b-256 78cc92648728d57e2864bd3173f50880e38c693e06532f4d68864b6a40da5507

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page