Este proyecto proporciona una API para cifrado y autenticación usando el algoritmo ElGamal.
Asegúrate de tener Python instalado en tu sistema. Se recomienda usar un entorno virtual para gestionar las dependencias.
- 
Clona el repositorio: git clone https://github.com/lpedraoss/elgamal-api.git cd elgamal-api
- 
Crea y activa un entorno virtual: python -m venv venv source venv/bin/activate # En Windows: venv\Scripts\activate 
- 
Instala las dependencias: pip install -r requirements.txt 
- 
Instala MySQL Server y MySQL Workbench: - Descarga e instala MySQL Server.
- Descarga e instala MySQL Workbench.
 
- 
Configura la base de datos: - Abre MySQL Workbench.
- En la barra lateral izquierda, en la sección "SCHEMAS", asegúrate de que elgamaldbesté visible.
- Haz doble clic en elgamaldbpara seleccionarla como la base de datos activa.
- Abre una nueva pestaña de consulta (Query Tab).
- Copia y pega el siguiente script SQL en la nueva pestaña de consulta:
 USE elgamaldb; CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL UNIQUE, password TEXT NOT NULL, p VARCHAR(255) NOT NULL, a VARCHAR(255) NOT NULL, c1 VARCHAR(255) NOT NULL ); - Ejecuta el script (puedes hacerlo presionando el botón de rayo o usando el atajo de teclado Ctrl+Enter).
 
- 
Inicia la aplicación: flask run 
- 
Endpoints Disponibles: - 
Registro de Usuario - Método: POST
- Endpoint: /api/register
- Descripción: Registra un nuevo usuario en el sistema.
- Cuerpo de la Solicitud: JSON con el siguiente formato:
{ "username": "tu_usuario_aqui", "password": "tu_contraseña_aqui" }
 
- Método: 
- 
Inicio de Sesión - Método: POST
- Endpoint: /api/login
- Descripción: Autentica un usuario comparando la contraseña ingresada con la almacenada.
- Cuerpo de la Solicitud: JSON con el siguiente formato:
{ "username": "tu_usuario_aqui", "password": "tu_contraseña_aqui" }
 
- Método: 
 
- 
- Asegúrate de que el archivo requirements.txtesté actualizado con las últimas dependencias usandopip freeze > requirements.txt.
- Consulta la documentación de Flask para más detalles sobre el framework.
Si deseas contribuir a este proyecto, por favor envía un pull request con tus cambios.