网站备案到期,国内哪家网站做的系统纯净,郴州网络推广教程,建设工程合同范本工程施工合同范本背景 规避数据库账号密码泄露风险, 项目中使用druid管理数据库#xff0c;该连接池支持密码加密, 那么下面演示下加密的过程。 加密过程
确定项目使用druid版本
定位druid使用的版本, 图中显示版本是1.2.23 定位 com.alibaba.druid包在maven资源库的位置 我的maven资源库目录…背景 规避数据库账号密码泄露风险, 项目中使用druid管理数据库该连接池支持密码加密, 那么下面演示下加密的过程。 加密过程
确定项目使用druid版本
定位druid使用的版本, 图中显示版本是1.2.23 定位 com.alibaba.druid包在maven资源库的位置 我的maven资源库目录是D:\software\maven\repository, 那么druid包的全路径自然是D:\software\maven\repository\com\alibaba\druid\1.2.23 加密密码
执行加密 java -cp druid-1.2.23.jar com.alibaba.druid.filter.config.ConfigTools 换成你的密码 比如密码是 Data_compass_123, 执行下面的命令将得到 加密后的密码,公钥,私钥
java -cp druid-1.2.23.jar com.alibaba.druid.filter.config.ConfigTools yourdatasoucepassswrod yourdatasoucepassswrod_加密后的文档.txt 项目druid配置
配置加密后的密码 配置公钥 spring.datasource.druid.masterConnectPropertiesconfig.decrypttrue;config.decrypt.key上一步获取的publicKey DataSouce加密配置 数据罗盘项目是通过AbstractRoutingDataSource抽象类管理多数据源的项目, 所以需要在各个DataSouce被初始化的时候,进行激活ConfigFilter过滤器,进行解密 Value(${spring.datasource.druid.masterConnectProperties})
private String connectProperties;Bean
ConfigurationProperties(spring.datasource.druid.master)
public DataSource masterDataSource(DruidProperties druidProperties) {DruidDataSource dataSource DruidDataSourceBuilder.create().build();// 1.0 设置开启加密,加密的公钥的连接属性dataSource.setConnectionProperties(connectProperties);try {// 开启ConfigFilter,负责解密dataSource.setFilters(config);} catch (SQLException throwables) {throwables.printStackTrace();}return druidProperties.dataSource(dataSource);
}
启动成功,业务则胡南广场
总结 可以通过这个方式解密出密码ConfigTools.decrypt(String publicKeyText, String cipherText) , 这两个信息都暴漏在配置文件中, 后面可以引入nacos公钥放入nacos。 如果是使用dynamic-datasource-spring-boot-starter项目的处理原理和这个项目类似具体配置待补充。