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 🐍🔒
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 (
🛠️ 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aad78c8d66cf990816467af3aecd1c745242716582cafde3104c78beb53588fc
|
|
| MD5 |
ace90af95f7e866fa303a3e4fec32f00
|
|
| BLAKE2b-256 |
7b035f8b543fbbb3ae1f12b62315b02b6a815ede53d1f015fcab6423caaaab08
|
File details
Details for the file cross_crypto_py-1.1.4-py3-none-any.whl.
File metadata
- Download URL: cross_crypto_py-1.1.4-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ccfcb9cad39d3b92f8c6fb1dd27795e3ab86f53e52f51df51b7d86759e6a47d
|
|
| MD5 |
5be6f3723a8ff9220aabbbc9add86ceb
|
|
| BLAKE2b-256 |
a0673f7cdce88e31a5d087d777188871a837e78412b955b46bd2068571163565
|