Skip to content

robertolima-dev/SmartSecurityPy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 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. 🚀

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages