Skip to main content

Cifrado híbrido seguro con interoperabilidad entre lenguajes como Python, TypeScript y Rust, basado en AES-GCM (256 bits) y RSA-OAEP (4096 bits)

Project description

🚀 Cross Crypto Py 🐍🔒

PyPI License Python Versions Build

Encriptación híbrida segura entre Python, TypeScript y Rust (AES-GCM + RSA-OAEP)


📌 Introducción

Cross Crypto Py es una librería de encriptación híbrida que combina AES-GCM para cifrado simétrico y RSA-OAEP para intercambio seguro de claves. Su ventaja clave es la interoperabilidad total entre Python, JavaScript/TypeScript y Rust.

Cifra datos en un lenguaje y descífralos en otro, con soporte para JSON, objetos serializados (dill) y archivos binarios (PDF, imágenes, etc).


🛠️ Uso básico (modo JSON)

from cross_crypto_py.keygen import generateRSAKeys
from cross_crypto_py.encrypt import encryptHybrid
from cross_crypto_py.decrypt import decryptHybrid

# 🔑 Generar claves RSA
keys = generateRSAKeys()
publicKey = keys["publicKey"]
privateKey = keys["privateKey"]

# 📩 Datos simples
data = { "mensaje": "Hola AcaDyne desde Python" }

# 🔒 Encriptar con modo JSON (por defecto)
encrypted = encryptHybrid(data, publicKey)
print("🛡️ Encriptado:", encrypted)

# 🔓 Desencriptar
decrypted = decryptHybrid(encrypted, privateKey)
print("✅ Desencriptado:", decrypted)

💡 Uso avanzado

🔹 Objetos complejos (mode="dill")

from cross_crypto_py.encrypt import encryptHybrid
from cross_crypto_py.decrypt import decryptHybrid

objeto_complejo = {"clase": MiClase(), "config": {"x": 1}}
encrypted = encryptHybrid(objeto_complejo, publicKey, mode="dill")
decrypted = decryptHybrid(encrypted, privateKey, mode="dill")

🔸 Archivos binarios (mode="binary")

with open("imagen.png", "rb") as f:
    contenido = f.read()

encrypted = encryptHybrid(contenido, publicKey, mode="binary")
decrypted = decryptHybrid(encrypted, privateKey, mode="binary")

with open("imagen_recuperada.png", "wb") as f:
    f.write(decrypted)

📁 Cifrado híbrido de archivos (encryptFileHybrid)

from cross_crypto_py.file_crypto import encryptFileHybrid, decryptFileHybrid

# 🔒 Encriptar uno o varios archivos/carpetas como ZIP
encrypted = encryptFileHybrid(
    paths=["datos/", "documento.pdf"],
    public_key=publicKey,
    save_file=True,
    output_enc="datos.enc"
)

# 🔓 Desencriptar archivo .enc y extraer archivos ZIP
output_dir = decryptFileHybrid("datos.enc", privateKey)
print("Archivos restaurados en:", output_dir)

🧬 Modo streaming para archivos grandes

# Encriptar archivo grande (streaming)
encrypted = encryptHybrid("video.mp4", publicKey, stream=True)

# Desencriptar archivo grande (streaming)
output_path = decryptHybrid(
    encrypted,
    privateKey,
    stream=True,
    decrypted_output_path="video_restaurado.mp4"
)

✅ Este modo evita cargar el archivo completo en memoria. Ideal para videos, backups, etc.


🎯 Características

Característica
Encriptación híbrida AES-GCM + RSA-OAEP ✔️
RSA de 4096 bits ✔️
Interoperabilidad: Python ↔ TypeScript ↔ Rust ✔️
Soporte para objetos (json, dill) ✔️
Soporte para archivos (binary) ✔️
Cifrado de carpetas y múltiples archivos ✔️
Modo streaming para archivos grandes ✔️
Encriptación y desencriptación unificadas ✔️

📦 Instalación

pip install cross-crypto-py

🌐 Ecosistema Cross-Crypto


🧪 Requisitos

  • Python ≥ 3.7
  • pycryptodome, dill

📄 Licencia

MIT © Jose Fabian Soltero Escobar

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

cross_crypto_py-1.1.4.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

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

cross_crypto_py-1.1.4-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file cross_crypto_py-1.1.4.tar.gz.

File metadata

  • Download URL: cross_crypto_py-1.1.4.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for cross_crypto_py-1.1.4.tar.gz
Algorithm Hash digest
SHA256 aad78c8d66cf990816467af3aecd1c745242716582cafde3104c78beb53588fc
MD5 ace90af95f7e866fa303a3e4fec32f00
BLAKE2b-256 7b035f8b543fbbb3ae1f12b62315b02b6a815ede53d1f015fcab6423caaaab08

See more details on using hashes here.

File details

Details for the file cross_crypto_py-1.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for cross_crypto_py-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8ccfcb9cad39d3b92f8c6fb1dd27795e3ab86f53e52f51df51b7d86759e6a47d
MD5 5be6f3723a8ff9220aabbbc9add86ceb
BLAKE2b-256 a0673f7cdce88e31a5d087d777188871a837e78412b955b46bd2068571163565

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