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.1.tar.gz (7.3 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.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file smartsecuritypy-1.0.1.tar.gz.

File metadata

  • Download URL: smartsecuritypy-1.0.1.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for smartsecuritypy-1.0.1.tar.gz
Algorithm Hash digest
SHA256 207050869472a5c589ca9189f58db574e1470a704f730ea9c2b6041ed8cb6d28
MD5 7f4f5be1974c389f4219410d78947b6d
BLAKE2b-256 df3fa925c7a85eeac150ece0584506bcfae01f6f8d300bd9a61d16480219422e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for smartsecuritypy-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 658f26cb4b7a11c42b93b324cc541600abf070dc384944510cad64ac3cde2750
MD5 229da2cdb364a1a394aec51bdc1d2621
BLAKE2b-256 8aa87b2b9a7a688f16860e983a837c95d7b0f7953f27a4f0fd8c08792e1057c7

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