一、配置文件:application-druid.yml

# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
            config:
                enabled: true
# 主库数据源
            master:
                url: jdbc:mysql://……………
                username: root
                password: K/Y6oK4ywo57m………………1zAGqiD8bewidbmKA+IBnzA==
# java -cp .\druid-1.2.1.jar com.alibaba.druid.filter.config.ConfigTools 生成密码
#DruidEncryptorUtils类生成密码和公钥,之后开启druid:filter:config:enabled=true
                publicKey: MFwwDQYJKoZIhvc………………W/aRWx6BKtTyZzERkCAwEAAQ==
                connectionProperties: config.decrypt=true;config.decrypt.key=${spring.datasource.druid.master.publicKey}
            slave:
# 从数据源开关/默认关闭
                enabled: false
                url: 
                username:
                password:

…………

#  启动加密数据库密码
                config:
                    enabled: true

二、生成密文 / 明文转密文

D:\>java -cp .\druid-1.2.1.jar com.alibaba.druid.filter.config.ConfigTools admin
privateKey:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAgpSFQQcH8FXxSudJrerj/LWKhH7mJv9Dd59q19hyaQYMV0l/RRd0W5KtSjRO5FvruydaKGcrg/v4hGuP+jJG/wIDAQABAkAlP8bPaPkLxwhg7J9o/FNy+Dp+V1DCGRke25v33Keua343lW98HpgchlJcmOHXicTd9/7onQuwaSwlm/xv/c1JAiEA7r+6Qc7+bvSasUcLFyGAjAtXpUzInYBmJa8speyMU9sCIQCMA+9Fi+yRnz44TlJAUFfwISB/85jorCP0WA7V85mUrQIgN9BYobPbZWMHmvQJ0rGBVLv+FGW77J4swxiNroh7UcsCIQCGnvHbiGF40gdc09E5jQZAF1nMLEcEzx3yvQfmpkUwMQIgQO5+Xo3RlSMMNYilFOCUUFWr9X0xu732jWrZPHQJrv0=
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIKUhUEHB/BV8UrnSa3q4/y1ioR+5ib/Q3efatfYcmkGDFdJf0UXdFuSrUo0TuRb67snWihnK4P7+IRrj/oyRv8CAwEAAQ==
password:ANTBniQbDmwWmFZEsafuqySzfJpOY7bQzbHcgWh85KecJC2voMlgzeq9sz7fV6wYDL7i0KEe2+nYgyYoI4K38Q==

三、解密验证 / 密文转明文

 pom.xml

<!--        配置文件密码加密-->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency> 

EncTool.java

public class EncTool {

    public static void main(String[] args) throws Exception {
        String decrypt = ConfigTools.decrypt("publicKeyText" ,"cipherText");
        System.out.println(decrypt);
    }
}
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐