springboot yml配置文件数据库密码加密

为了安全考虑,公司打算将yml配置文件中的数据库连接信息的账号,密码进行加密!

 

1.了解到 常用的加密方式:

  spring boot整合Jasypt实现yml配置文件敏感信息加密

  SpringBoot使用Druid密码加密/解密

       Springboot druid数据库密码加密配置步骤(多数据源参考配置)

1.1使用druid 如何进行解密 

  1. 创建一个DesPassword类写main方法,继承druid中的DruidPasswordCallback类。
  2. 在main方法中引用ConfigTools.decrypt(publickey, password)方法,填入已知的公钥和密码。
  3. 打印结果,done
    复制代码
     
    import com.alibaba.druid.filter.config.ConfigTools;
    import com.alibaba.druid.util.DruidPasswordCallback;
     
     
     
    public class DesPassword extends DruidPasswordCallback {
     
        public static void main(String[] args) throws Exception{
            String publickey = 填入公钥;
            String password = 填入密码;
            String pwd = ConfigTools.decrypt(publickey, password);
     
            System.out.println(pwd);
        }
    }
    复制代码

2.Druid加密具体的操作

  2.1 测试类中生成公私钥 加密密文。

  

 

  • 123456为未加密的数据库密码
  • privateKey为生成的私钥
  • publicKey为生成的公钥
  • password为加密后的数据库密码

 以上的公钥和密码钥,要特别注意,解密的话是用这两个进行解密

  2.2 配置数据库加密 ,yml中将password修改为第一步生成的密文,配置 connectionProperties,启用加密,配置公钥

  

 

   2.3 ,配置过滤器 config

   

 

 3.多个数据源重复,2.1,2.2

 

配置Druid出现:java.lang.IllegalArgumentException: Failed to decrypt. 

  publickey 不用表达式 指向 直接赋值

 

 

 3.使用jasypt

jasypt版本和springBoot版本之间的对应关系如下:

  • SpringBoot2.1.x 对应使用 jasypt2.10
  • SpringBoot1.5.x 对应使用 jasypt1.5

阿里元:SpringBoot 使用Jasypt加密配置

 对spring boot yml配置文件敏感信息加密处理的两种方式

 

参考:

对spring boot yml配置文件敏感信息加密处理的两种方式

springboot yml数据库密码加密的两种方式

给yml配置文件的密码加密(SpringBoot)

Springboot druid数据库密码加密配置步骤(多数据源参考配置)

Druid配置数据库加密(SpringBoot)

 

踩坑注意

当数据库使用特殊符号为密码时,无法使用加密 会解密失败,如!@#¥%……&* 等

经检验这两个是可以的,源码里解密过程使用了final 咱们无法去修改它,所以如果要使用Druid来加密数据库密码,就不要使用特殊符号拉。

该问题倒腾了好久,最后经过不断的测试终于找到了问题。网上几乎找不到解决方案和加密说明。所以就写下来记录一下!

 

posted @   BBS_自律  阅读(2647)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
历史上的今天:
2021-09-28 sql语句左链接left join--3张表关联
点击右上角即可分享
微信分享提示