java web 项目数据库连接账号密码加密

需求:因项目需要将数据库连接账号密码需要加密处理。

首先,先贴出加密前配置等信息

1、加密前的数据库连接账号、密码
java web 项目数据库连接账号密码加密_第1张图片
2、配置文件



    	
    	
    	
    	
    

其次,这是加密的处理

1、加密后的数据库连接账号、密码
java web 项目数据库连接账号密码加密_第2张图片
2、修改配置文件信息




	
		
			
				classpath:db.properties
			
		
	


    	
    	
    	
    	
    

3、新建EncryptPropertyPlaceholderConfigurer继承PropertyPlaceholderConfigurer,获取Properties对象,并将对象中的数据库账号、密码解密set(数据库账号密码的加、解密可以找其他的加密工具类加密,这里使用的是DES)

import java.util.Properties;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

public class EncryptPropertyPlaceholderConfigurer extends
		PropertyPlaceholderConfigurer {
	private String[] encryptPropNames = { "jdbc.username", "jdbc.password" };
	@Override
	protected void processProperties(
			ConfigurableListableBeanFactory beanFactoryToProcess,
			Properties props) throws BeansException {
		DesUtils des;
		try {
			//加解密
			des = new DesUtils("222");
			for (String encryptName : encryptPropNames) {
				String name = props.getProperty(encryptName);
				if (null != name) {
					// 将加密的username和password解密后塞到props
					props.setProperty(encryptName, des.decrypt(name));
				}
			}
			super.processProperties(beanFactoryToProcess, props);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

你可能感兴趣的:(java web 项目数据库连接账号密码加密)