DEV Community

William Rodriguez
William Rodriguez

Posted on

Cifrado al vuelo: encrypt() y decrypt() directo con auto-JSON.

Cifrar cargas para colas de eventos no debería obligarte a serializar JSON y convertir bytes a mano. encrypt() y decrypt() de wauth procesan strings, listas y diccionarios con total transparencia.

Esta es la implementación exacta para producción de Direct encrypt() & decrypt() with Auto-JSON:

from wauth import WAuth

auth = WAuth()

# 1. Direct String Encryption
token = auth.encrypt("Sensitive payload for Kafka topic")
original_text = auth.decrypt(token)

# 2. Direct Dictionary (Auto-JSON) Encryption
session = {
    "user_id": 9941,
    "role": "superadmin",
    "permissions": ["read", "write", "audit"]
}

# Automatically serialized to JSON before AES encryption
encrypted_token = auth.encrypt(session)

# Automatically deserialized back into a real Python dictionary!
restored_session = auth.decrypt(encrypted_token)
print(f"Restored role: {restored_session['role']}")
Enter fullscreen mode Exit fullscreen mode

Ventajas de ingeniería:

  • Primitivas Directas: auth.encrypt(payload) y auth.decrypt(token) sin escribir en base de datos.
  • Auto-Serialización JSON: Serializa y deserializa tipos dict y list de forma transparente.
  • Listo para Streaming: Ideal para sellar eventos de Kafka, cargas en Redis y webhooks HTTP.

Problemas eliminados:

  • Necesidad de cifrar payloads JSON para colas de mensajería sin querer guardarlos en base de datos
  • Hacer malabares con json.dumps() y conversiones de bytes antes de invocar la criptografía
  • Estructuras de diccionarios corruptas por errores manuales de codificación y decodificación

Explora el código fuente abierto y auditado en GitHub o instálalo con:

pip install wauth
Enter fullscreen mode Exit fullscreen mode

Autor: William Steve Rodríguez Villamizar (Wisrovi)

Top comments (0)