Skip to content
章节导航

数据源加密

数据源加密,是针对 urlusernamepassword 三个属性加密

依赖引入

xml
<dependency>
  <groupId>com.github.itdachen</groupId>
  <artifactId>datasource-spring-boot-starter</artifactId>
  <version>[最新版本]</version>
</dependency>

数据库加密类型

类型描述是否默认配置
NOOP不加密
AESAES 对称加密

加密配置

yaml
fly:
  # 数据库加密配置
  datasource:
    encoder: AES
    secretKey: #Fly!SAGA2020*&@
  • fly.datasource.encoder:数据源加密类型
  • fly.datasource.secretKey:数据源加密秘钥

属性加密

java
@SpringBootTest
public class DataSourceTests {

    /** 数据源加密接口 */
    @Autowired
    private IDataSourceEncrypt dataSourceEncrypt;

    @Test
    void dataSourceTests() {
        String url = "jdbc:mysql://127.0.0.1:3306/fly_next_admin?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";
        System.err.println("url: " + dataSourceEncrypt.encrypt(url));
        System.err.println("username: " + dataSourceEncrypt.encrypt(username));
        System.err.println("password: " + dataSourceEncrypt.encrypt(password));
    }


}

加密之后配置

yaml
spring:
  datasource:
    name: mysql
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    url: cLKf3B49x6XCyx1nIaSvTaYIC8GCP+r7sXbSh1ax9RqnYvwZowYYO93pnZitVARo
    username: ERLOzzJWGQhsJih+ZBQu3g==
    password: ERLOzzJWGQhsJih+ZBQu3g==