数据库加密配置
引入依赖
项目 pom 文件依赖如下:
xml
<!-- 数据库加密模块 -->
<dependency>
<groupId>com.github.itdachen.framework</groupId>
<artifactId>fly-datasource</artifactId>
</dependency>数据库加密配置分为两种情况:
- 不加密
- AES 加密
配置
yaml
fly:
datasource:
encoder: AES- 若不配置, 则默认不加密
NOOP fly.datasource.encoder默认两个选项: NOOP(不加密)、AES(AES加密), 超出两个选项之外的配置, 默认不加密- 数据库连接加密项:
url、username、password
对外加密接口
为了更好的使用, 引用项目可以通过测试类, 实现数据库连接加密, 提供了加密接口: IDataSourceEncrypt 测试代码如下:
@SpringBootTest
public class FlyNextAdminDatasourceTests {
@Autowired
private IDataSourceEncrypt dataSourceEncrypt;
@Test
void dataSourceEncoder() {
String url = "jdbc:mysql://127.0.0.1:3306/fly-next?useUnicode=true&characterEncoding=UTF8&createDatabaseIfNotExist=true&useUnicode=true&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true";
String username = "root";
String password = "root";
final String encryptUrl = dataSourceEncrypt.encrypt(url);
final String encryptUsername = dataSourceEncrypt.encrypt(username);
final String encryptPassword = dataSourceEncrypt.encrypt(password);
System.err.println("加密后:");
System.err.println("url: " + encryptUrl);
System.err.println("username: " + encryptUsername);
System.err.println("password: " + encryptPassword);
}
}加密后, 控制台打印示例如下:
url: 0vCwEpK35V/Ecq40QoCgf1IJWnXfMGSWOE+YWOa4E0w/huQlV0pYt8MLzeJw/8loKQY5JqeZXtAZCNawXc1A4FXrAMWUtLf/svyBdr3kLrDCnTYqsP6JiB8HaGi9XjeWHaMwNYufZdxJTso7njs6yGXpgqN7JmqDW0VJ5Q39K+t24bphaIjiuXvUu23sPAK4oP1fDmCgAq27ntc0DpF6JuMmMyZxgmsI7Q/CFEDuTGc8ong29pNTEJEC/U3wFSHWpmeo7Jk6wS31hdMEsIXFPovoI/Bay4M6GbQAHUuGDg7IWBGrTsTmpIX2/Sx/Yl1TC+f3yv8z5AJDWtgQsRzJcA==
username: NlhUCBn05JB+mdAZlpniCA==
password: NlhUCBn05JB+mdAZlpniCA==替换配置文件中的数据库连接配置, 如下:
yaml
spring:
datasource:
name: mysql
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
url: 0vCwEpK35V/Ecq40QoCgf1IJWnXfMGSWOE+YWOa4E0w/huQlV0pYt8MLzeJw/8loKQY5JqeZXtAZCNawXc1A4FXrAMWUtLf/svyBdr3kLrDCnTYqsP6JiB8HaGi9XjeWHaMwNYufZdxJTso7njs6yGXpgqN7JmqDW0VJ5Q39K+t24bphaIjiuXvUu23sPAK4oP1fDmCgAq27ntc0DpF6JuMmMyZxgmsI7Q/CFEDuTGc8ong29pNTEJEC/U3wFSHWpmeo7Jk6wS31hdMEsIXFPovoI/Bay4M6GbQAHUuGDg7IWBGrTsTmpIX2/Sx/Yl1TC+f3yv8z5AJDWtgQsRzJcA==
username: NlhUCBn05JB+mdAZlpniCA==
password: NlhUCBn05JB+mdAZlpniCA==
剑鸣秋朔