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)@SpringBootTestpublic 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、重启应用,查看数据库是否连接成功