https://github.com/brosgor/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/brosgor/CipherBox
cipher encryption-decryption security-tools
Last synced: about 1 year 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/brosgor/CipherBox
- Owner: brosgor
- Created: 2024-09-11T04:11:35.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-11T16:55:55.000Z (almost 2 years ago)
- Last Synced: 2025-03-14T04:10:02.159Z (over 1 year 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
- PyCryptodome
Puedes 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.