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
elgamaldb
esté visible. - Haz doble clic en
elgamaldb
para 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.txt
esté 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.