springboot配置文件数据库账号密码加密

Posted 熊猫和小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot配置文件数据库账号密码加密相关的知识,希望对你有一定的参考价值。

配置文件配置暴露一些密码问题处理:

jasypt 是一个简单易用的加解密Java库

相关源码github地址

github:https://github.com/ulisesbocchio/jasypt-spring-boot

https://github.com/gxing19/Spring-Boot-Example/tree/master/spring-boot-password-encrypt

1、添加依赖:

<!-- jasypt加密 -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>

2、环境变量设置 jasypt 密钥:

jasypt.encryptor.password=vh^onsYFUx^DMCKK

不让密钥在配置文件中显示,可以在启动应用时将密码做为启动参数传递给应用
在运行应用时设置环境变量,如下:
java -jar target/jasypt-spring-boot-demo-0.0.1-SNAPSHOT.jar --jasypt.encryptor.password=password

或将密钥作为命令行参数传递运行应用
java -Djasypt.encryptor.password=password -jar target/jasypt-spring-boot-demo-0.0.1-SNAPSHOT.jar

3、编写测试代码生成密文
package com.aisino.cma;

import org.jasypt.encryption.StringEncryptor;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
/**
* <p>
* 前端控制器
* </p>
*
* @author ranqw
* @since 2020-06-03
*/

@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationProperties {

@Autowired
StringEncryptor encryptor;

@Test
public void jacketEncrypt() {

//加密
/*String name = encryptor.encrypt("invoice");
String password = encryptor.encrypt("user99");
System.out.println("name 密文: " + name);
System.out.println("password 密文: " + password);*/

//解密
/*String decrypt1 = encryptor.decrypt(name);
String decrypt2 = encryptor.decrypt(password);
System.out.println(decrypt1 + "------------" + decrypt2);*/
}

}

4、重启应用,查看数据库是否连接成功

 

以上是关于springboot配置文件数据库账号密码加密的主要内容,如果未能解决你的问题,请参考以下文章

开发经验springboot配置文件加密详解

SpringBoot配置文件敏感信息加密

spring boot/cloud配置文件加密jasypt

Springboot 配置文件隐私数据脱敏的最佳实践(原理+源码)

Java 中如何加密配置文件中的数据库账号和密码?

winform程序如何加密配置文件