Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lpedraoss/cipherbox
Este proyecto es un sistema de cifrado híbrido que combina cifrado simétrico (AES-256) y cifrado asimétrico (RSA) para proteger archivos.
https://github.com/lpedraoss/cipherbox
cipher encryption-decryption security-tools
Last synced: about 2 months ago
JSON representation
Este proyecto es un sistema de cifrado híbrido que combina cifrado simétrico (AES-256) y cifrado asimétrico (RSA) para proteger archivos.
- Host: GitHub
- URL: https://github.com/lpedraoss/cipherbox
- Owner: lpedraoss
- Created: 2024-09-11T04:11:35.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-09-11T16:55:55.000Z (4 months ago)
- Last Synced: 2024-09-12T11:34:23.999Z (4 months ago)
- Topics: cipher, encryption-decryption, security-tools
- Language: Python
- Homepage:
- Size: 1.51 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sistema de Cifrado Híbrido Brosgor (AES-256 + RSA)
Este proyecto es un sistema de cifrado híbrido que combina cifrado simétrico (AES-256) y cifrado asimétrico (RSA) para proteger archivos. Utiliza la librería `PyCryptodome` para implementar la criptografía y proporciona una interfaz de línea de comandos (CLI) sencilla para cifrar y descifrar archivos.
## Descripción del proyecto
El sistema permite:
- **Cifrar archivos**: Los archivos se cifran con una clave AES-256 generada aleatoriamente. La clave AES se cifra utilizando RSA con claves públicas y privadas generadas dinámicamente. El archivo cifrado resultante tiene la extensión `.lock`, mientras que la clave AES cifrada se guarda en un archivo con la extensión `.key`.
- **Descifrar archivos**: Utilizando la clave privada RSA, el sistema descifra la clave AES y luego descifra el archivo original, devolviéndolo a su formato original.## Requisitos
Antes de ejecutar el proyecto, asegúrate de tener instaladas las siguientes dependencias:
- Python 3.x
- PyCryptodomePuedes instalar las dependencias con el siguiente comando, usando el archivo `requirements.txt`:
```bash
pip install -r requirements.txt
```## Instalación
1. Clona este repositorio:
```bash
git clone https://github.com/lpedraoss/CipherBox.git
cd cipherbox
```2. Crea y activa un entorno virtual:
```bash
python -m venv venv
source venv/bin/activate # En Linux/MacOS
venv\Scripts\activate # En Windows
```3. Instala las dependencias:
```bash
pip install -r requirements.txt
```## Uso
### Cifrar un archivo
1. Coloca los archivos que deseas cifrar en la carpeta `central`.
2. Ejecuta el programa:```bash
python main.py
```3. Selecciona la opción **"1. Cifrar un archivo"** y sigue las instrucciones en pantalla para elegir un archivo y especificar un alias para las claves y archivos cifrados.
### Descifrar un archivo
1. Ejecuta el programa:
```bash
python main.py
```2. Selecciona la opción **"2. Descifrar un archivo"** y elige el archivo `.lock` que deseas descifrar.
### Limpiar la consola
El programa limpiará automáticamente la consola según el sistema operativo que utilices:
- **Windows**: Utiliza `cls`.
- **Linux/MacOS**: Utiliza `clear`.## Archivos generados
El programa generará varios archivos:
- `.lock`: El archivo cifrado.
- `.key`: La clave AES cifrada con RSA.
- `.extinfo`: Información adicional cifrada, como la extensión original del archivo.
- `.private.key`: La clave privada RSA.
- `.public.key`: La clave pública RSA.## Dependencias
Asegúrate de tener las siguientes dependencias en el archivo `requirements.txt`:
```
pycryptodome
```## Archivo `requirements.txt`
Asegúrate de tener este contenido en tu archivo `requirements.txt`:
```plaintext
pycryptodome
```## Uso del Entorno Virtual
Para crear y activar un entorno virtual, sigue estos pasos:
1. Crea el entorno virtual:
```bash
python -m venv venv
```2. Activa el entorno virtual:
- En Linux/MacOS:
```bash
source venv/bin/activate
```- En Windows:
```bash
venv\Scripts\activate
```3. Instala las dependencias del proyecto:
```bash
pip install -r requirements.txt
```## Contribución
Si deseas contribuir a este proyecto, puedes hacer un fork del repositorio y enviar un pull request con tus mejoras.