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.3.tar.gz (11.8 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.3-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cross_crypto_py-1.1.3.tar.gz
  • Upload date:
  • Size: 11.8 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.3.tar.gz
Algorithm Hash digest
SHA256 3493bf477efd303420549ae9496bbb03cc23c10a0b7e3311a0b3576467324ce8
MD5 5345c6b075ade8e214f63512880267df
BLAKE2b-256 a91e823838447cc0d73c655b9df1d9586f0a877b2edd8c8011b531b5510d26eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cross_crypto_py-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 597028da37e3d7c1ef3fc6f470fe8e5655a189a77367d44930867a4f51082e8b
MD5 83b1b0dc5cfb0c90ea01d304346954be
BLAKE2b-256 4237d44a7ea12070ddc9775c8f0759325fc9238589c10883a23dfe43d36d13fb

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