看了很多大佬的博客,这里简练总结叙述一下步骤:
第一步:Springboot项目集成alibaba.druid
不是本文重点
第二步:在你的本地仓库里找到你的druid jar包,在当前路径下cmd,执行命令:(下面的jar包是我的版本1.1.13)
java -cp druid-1.1.13.jar com.alibaba.druid.filter.config.ConfigTools yourpassword
输出的privateKey为你的私钥,publicKey为公钥,password为你加密后的密码
第三步:properties配置文件中druid的参数里增加:
spring.datasource.druid.filters= config
spring.datasource.druid.filter.config.enabled=true
第四步:修改你的数据库密码为第二步里加密后的password
第五步:增加DruidConfig.java配置类
@Configuration
public class DruidConfig {
//数据库密码公钥
private static final String PUBLIC_KEY="第二步里你的publicKey";
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
@Value("${spring.datasource.name}")
private String name;
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource.druid")
public DataSource druidDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(driverClassName);
druidDataSource.setName(name);
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
//如果你已经配置有DruidConfig.java类,以下是新增参数
Properties properties=new Properties();
properties.setProperty("config.decrypt","true");
properties.setProperty("config.decrypt.key",PUBLIC_KEY);
druidDataSource.setConnectProperties(properties);
return druidDataSource;
}
}
以上就可以正常运行了,测试你的项目是否可以正常访问数据库。
第六步:编写解密测试类
@Test
public void druidDecryptPwd() throws Exception {
String encryptAfterPwd="";//加密后的密码
String publicKey="";//你的公钥
String pwd= ConfigTools.decrypt(publicKey,encryptAfterPwd);
//这里可以解密看到你的数据库密码明文
log.info("decrypt after pwd={}",pwd);
}