com.alibaba.druid.pool.DruidDataSource 中数据库密码加密解密方式

Druid是阿里巴巴开发的一款数据库连接池,它支持对数据库密码的加密操作,下面来看看如何利用Druid对数据库的密码进行加密解密操作。

第一步:采用一种加密算法(本例采用rsa加密算法,私钥加密,公钥解密)对数据库用户密码进行加密,并将加密后的密码密文写入到spring.properties中,部分属性配置如下:

spring.jdbc.driverClass=org.postgresql.Driver
spring.jdbc.jdbcUrl=jdbc:postgresql://127.0.0.1:5432/lkk
spring.jdbc.user=postgres
spring.jdbc.password=b78fa3c827ad48b73c13723cd0431508d122219632500582


第二步:由于需要数据库密码回调解密,所以需要自定义DruidPasswordCallback的一个子类,此案例中该子类为DbPasswordCallback。package com.demoinfo.support.utils;

import com.alibaba.druid.util.DruidPasswordCallback;
import org.apache.commons.lang3.StringUtils;
import java.util.Properties;

/**
 * 描述 数据库密码回调解密
 *
 */
public class DbPasswordCallback extends DruidPasswordCallback {

    @Override
    public void setProperties(Properties properties) {
        super.setProperties(properties);
        String pwd = properties.getProperty("password");
        if (StringUtils.isNotBlank(pwd)) {
            try {
                //对jdbc.properties配置的密码密文 进行解密
                String password = RsaEncryptAndDecodeUtil.decrypt(pwd);
                setPassword(password.toCharArray());
            } catch (Exception e) {
                setPassword(pwd.toCharArray());
            }
        }
    }

}

第三步:spring.xml中的数据源如下配置(红色部分涉及到数据库密码加密)






   
   
   
   

   

   
   
   
   

   
   
   

     
     

     
     
     
     

     
     

   
   
   
   

完成!

RsaEncryptAndDecodeUtil 内容参看另一篇博文:https://blog.csdn.net/HSH205572/article/details/87370427

你可能感兴趣的:(Spring,加密和解密)