Este proyecto es una aplicacion web construida con Spring Boot, que permite gestionar usuarios en una base de datos MySQL. Su enfoque principal es el almacenamiento y validación segura de contraseñas mediante hashing recursivo con MD5 (10 iteraciones).
- Clona el repositorio
git clone https://github.com/Breynersmartinez/bcryptMD2025-springboot.git
️## Configura la base de datos
- Abre MySQL y crea una base de datos
- Desde la terminal, estando en el directorio del proyecto, corre:
- También puedes hacerlo desde tu IDE (clic derecho sobre la clase con @SpringBootApplication → Run).
- Abre el navegador de tu preferencia
- Ejecute la aplicacion de forma local http://localhost:8080
- O puedes ingresar a la aplicacion por medio de este enlace:
- Se recibe un
Usercon ID, nombre y contraseña. - La contraseña es encriptada usando MD5 recursivo (10 veces) antes de ser almacenada.
- Se verifica la combinación ID + contraseña ingresada (hasheada) con la almacenada en la base de datos.
- Solo es posible si la contraseña actual es válida.
- Permite cambiar el nombre y la contraseña (ambos opcionales).
- Requiere ID y contraseña correctos para eliminar al usuario.
- Devuelve los datos del usuario, ocultando la contraseña.
- Entidad que representa la tabla
usuarioen la base de datos. - Campos:
idUsuario,nombreUsuario,contraseniaUsuario.
- Repositorio de acceso a datos, que hereda de
JpaRepository.
- Contiene la lógica del negocio:
- Registro con hashing.
- Validación de credenciales.
- Lógica para login, update y delete.
- Implementa la función de hash MD5, con relleno para mantener los 32 caracteres.
UpdateUserDTO: permite enviar datos para cambiar nombre o contraseña.
- Expone los endpoints REST para:
GET /usuarios/{id}: obtener usuario.POST /usuarios: registrar.POST /usuarios/update: actualizar.POST /usuarios/delete: eliminar.POST /usuarios/login: login.
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /usuarios/{idUsuario} |
Obtener usuario por ID (sin contraseña) |
| POST | /usuarios |
Registrar nuevo usuario |
| POST | /usuarios/login |
Validar login con ID y contraseña |
| POST | /usuarios/update |
Actualizar nombre/contraseña |
| POST | /usuarios/delete |
Eliminar usuario con contraseña |
- Java 17
- Maven 3.6+
- Base de datos MySQL
- Spring Boot 3.4.4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.3.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>





