Spring Boot项目application.yml文件数据库配置密码加密
Posted 烟冷瞳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot项目application.yml文件数据库配置密码加密相关的知识,希望对你有一定的参考价值。
在Spring boot开发中,需要在application.yml文件里配置数据库的连接信息,或者在启动时传入数据库密码,如果不加密,传明文,数据库就直接暴露了,相当于"裸奔"了,因此需要进行加密处理才行。
第一步:引入jar包【版本随意】
如果使用@SpringBootApplication注解启动的项目,只需增加maven依赖,其他方式请参考如下GitHub地址的README信息:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
我们对信息加解密是使用这个jar包的:
第二步:获取加密串
package com.test;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;
import org.junit.Test;
public class JasyptTest {
@Test
public void testEncrypt() throws Exception {
StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
EnvironmentPBEConfig config = new EnvironmentPBEConfig();
config.setAlgorithm("PBEWithMD5AndDES"); // 加密的算法,这个算法是默认的
config.setPassword("密钥"); // 加密的密钥,必须为ASCll码
standardPBEStringEncryptor.setConfig(config);
String plainText = "明文字符串";
String encryptedText = standardPBEStringEncryptor.encrypt(plainText);
System.out.println(encryptedText);
}
@Test
public void testDe() throws Exception {
StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
EnvironmentPBEConfig config = new EnvironmentPBEConfig();
config.setAlgorithm("PBEWithMD5AndDES");
config.setPassword("密钥");
standardPBEStringEncryptor.setConfig(config);
String encryptedText = "加密串";
String plainText = standardPBEStringEncryptor.decrypt(encryptedText);
System.out.println(plainText);
}
}
第三步:配置数据库信息
加密串拿到了,现在来修改application.yml的配置,我们把加密串放在ENC(加密串)即可:
spring:
datasource:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: 数据库地址
username: 用户名
password: ENC(密码加密串)
第四步:配置自动解密密钥
还要在yml中加这个密钥的配置,在项目启动的时候,会根据密钥自动解密ENC(加密串)所代表的数据信息:
jasypt:
encryptor:
password: 密钥
以上是关于Spring Boot项目application.yml文件数据库配置密码加密的主要内容,如果未能解决你的问题,请参考以下文章
Spring boot application.properties maven 多模块项目
Spring boot jsp 和 application.yml
无法在 Spring Boot 应用程序中读取 application.properties
如何将 Spring Boot 项目迁移到旧 Spring MVC 项目。面临的问题,如何在遗留 Spring MVC 项目中读取 application.properties 文件