¡Hola Estudiante! Espero que estés bien.
Sí, hay formas de cifrar esos valores confidenciales para que no sean legibles cuando se envía el código fuente a otro entorno.
Una forma común en Spring Boot es utilizando la clase StandardPBEStringEncryptor
de la biblioteca Jasypt. Aquí te muestro cómo puedes hacerlo:
- Agrega la dependencia de Jasypt en tu archivo
pom.xml
si estás utilizando Maven, o en tu archivo build.gradle
si estás utilizando Gradle:
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
- En tu archivo
application.properties
, en lugar de escribir la contraseña en texto plano, puedes cifrarla utilizando la siguiente sintaxis:
spring.datasource.password=ENC(contraseña_cifrada)
- Genera una clave de cifrado. Puedes hacerlo ejecutando el siguiente comando en tu terminal:
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="tu_contraseña" password="tu_clave_de_cifrado" algorithm="PBEWithMD5AndDES" verbose=false
Reemplaza tu_contraseña
con la contraseña que deseas cifrar y tu_clave_de_cifrado
con una clave secreta que solo tú conozcas.
- Copia la contraseña cifrada generada por el comando anterior y pégala en lugar de
contraseña_cifrada
en el paso 2.
Con estos pasos, la contraseña estará cifrada en el archivo application.properties
y no será legible cuando se envíe el código fuente a otro entorno.
Es importante tener en cuenta que la seguridad no es absoluta y siempre hay riesgos potenciales. Por lo tanto, es recomendable seguir buenas prácticas de seguridad adicionales, como proteger adecuadamente el acceso al archivo de configuración y utilizar otras medidas de seguridad para proteger tus aplicaciones.
Mucho éxito en todo lo que te propongas y si tienes más duda aquí estaremos para apoyarte.
¡Vamos juntos!
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios.