`
cpu
  • 浏览: 168069 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据库连接加密 配置文件加密

    博客分类:
  • Java
阅读更多
重写连接池的setPassword()方法.
写密文解析成明文.

public synchronized void setPassword(String password) {
		super.setPassword(Crypto.decrypt(password));
	}


  <bean id="dataSource" class="com.cc.utils.MyDataSource" destroy-method="close">
        <property name="driverClassName" value="${oracle.driverClassName}"/>
        <property name="url" value="${oracle.url}"/>
        <property name="username" value="${oracle.username}"/>
        <property name="password" value="${oracle.password}"/>        
    </bean>
    



import java.security.Key;
import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Crypto {

	private static Key key;
	private static final String strKey = "key";
	
	
	private static void setKey(String strKey) {
		try {
			KeyGenerator generator = KeyGenerator.getInstance("DES");
			generator.init(new SecureRandom(strKey.getBytes()));
			key = generator.generateKey();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private static byte[] getCipherFromClear(byte[] byteClear) {
		Cipher cipher = null;
		byte[] byteCipher = null;
		
		try {
			cipher = Cipher.getInstance("DES");
			cipher.init(Cipher.ENCRYPT_MODE, key);
			byteCipher = cipher.doFinal(byteClear);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			cipher = null;
		}
		
		return byteCipher;
	}
	
	/**
	 * 加密
	 * @param plainStr
	 * @return
	 */
	public static String encrypt(String plainStr) {
		BASE64Encoder base64Encode = new BASE64Encoder();
		String strCipher = "";
		byte[] bClear = null;
		byte[] bCipher = null;
		
		setKey(strKey);
		
		try {
			bClear = plainStr.getBytes("UTF-8");
			bCipher = getCipherFromClear(bClear);
			strCipher = base64Encode.encodeBuffer(bCipher);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return strCipher;
	}
	
	private static byte[] getClearFromCipher(byte[] byteCipher) {
		
		Cipher cipher = null;
		byte[] byteClear = null;
		
		try {
			cipher = Cipher.getInstance("DES");
			cipher.init(Cipher.DECRYPT_MODE, key);
			byteClear = cipher.doFinal(byteCipher);
		} catch (Exception e) {
			e.printStackTrace();
		} 
		
		return byteClear;
	}
	
	
	/**
	 * 解密
	 * @param strCipher
	 * @return
	 */
	public static String decrypt(String strCipher) {
		BASE64Decoder base64Decode = new BASE64Decoder();
		String strClear = "";
		byte[] byteCipher = null;
		byte[] byteClear = null;
		
		setKey(strKey);
		
		try {
			byteCipher = base64Decode.decodeBuffer(strCipher);
			byteClear = getClearFromCipher(byteCipher);
			strClear = new String(byteClear, "UTF-8");
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return strClear;
	}
	
}

分享到:
评论

相关推荐

    Spring数据库连接等配置加密

    总的来说,Spring框架通过结合配置文件和解密器,可以有效地保护数据库连接等敏感信息,避免了因信息泄露带来的潜在风险。开发者应根据项目需求选择合适的加密算法和工具,并确保加密密钥的安全管理,以提升应用的...

    Tomcat配置数据库连接加密访问

    Tomcat配置数据库连接加密访问

    数据库配置工具 自动加密配置文件

    C#2012编写的 自动配置数据库联接字符串的小工具, 配置文件MD5加密。

    数据库连接配置(加密保存INI文件)

    在这个特定的案例中,开发者采用了一种安全措施,即将数据库连接信息加密并保存在本地的INI配置文件中。这确保了敏感信息如数据库用户名、密码等不被轻易访问或篡改。 INI文件是一种常见的配置文件格式,它以纯文本...

    tomcat_连接池数据库密码加密解密方法

    一旦服务器被非法访问或配置文件被非授权查看,数据库的安全性将受到严重威胁。因此,采用加密手段保护数据库凭证至关重要。 #### 加密解密方案 为了提高安全性,我们可以对Tomcat连接池中数据库密码进行加密处理...

    C#数据库连接字符串加密解密类

    .net下C#数据库连接字符串在配置文件中的加密解密类

    druid实现springmvc数据库连接的用户名和密码加密

    `加密配置.txt`文件可能是存储加密后的数据库连接参数的地方,我们需要一个解密过程来读取并解码这些信息。 6. **部署与测试**:在实际部署中,确保所有环境(开发、测试、生产)都正确配置了加密和解密机制,并...

    C#数据库连接字符串加密方法

    本文将深入探讨如何在C#中对数据库连接字符串进行加密,以确保数据的安全性。 首先,我们来了解App.config文件。在.NET框架中,App.config是用于存储应用程序配置信息的文件,包括数据库连接字符串。在项目启动时,...

    数据库密码配置加密操作步骤.doc

    最后,修改配置文件,配置的密码可以删除,不用显示将创建的 DBPasswordCallback 类注入到 DataSource 中。 数据库密码配置加密操作是保护数据库账号密码的重要手段,通过使用 Jasypt 或 Druid 等加密库,可以有效...

    Tomcat 配置文件数据库密码加密

    Tomcat 配置文件数据库密码加密,增加factory属性和修改context.xml文件中密码为密文,在lib文件中添加自定义的factory类 代码是jdk1.8版本,包含简单的加密类和http请求,如果使用简单的加密,不需要引用额外的lib...

    VC连接数据库配置文件

    ### VC连接数据库配置文件知识点详解 #### 一、配置文件的重要性及作用 配置文件在软件开发过程中扮演着至关重要的角色,特别是在需要与外部系统(如数据库)进行交互的应用程序中。配置文件通常用于存储应用程序...

    winform对项目的配置文件加密解密

    为了保护这些信息不被未经授权的用户访问,我们可以对这些配置文件进行加密。本文将深入探讨如何在WinForm项目中实现配置文件的加密与解密。 首先,让我们了解`.config`文件的基本结构。`.config`文件,特别是`app....

    spring-jdbc文件数据库配置加密

    对数据库配置文件进行加密存储方案,对数据库配置文件进行加密存储方案,对数据库配置文件进行加密存储方案,对数据库配置文件进行加密存储方案,对数据库配置文件进行加密存储方案

    Java MD5 加密数据库连接池密码

    数据库连接池的配置中,通常会在配置文件(如XML或properties文件)中写入加密后的密码。在应用启动时,会读取这个加密后的密码,然后进行解密操作,与用户输入的明文密码进行比对。具体的解密过程取决于加密策略,...

    AES256 加密 解密 Tomcat连接池数据库密码加密_1

    使用AES256加密技术实现tomcat7对连接池数据库密码加密解密,资源中包含加密小程序,小程序实现加密,tomcat中实现解密,方便客户自己修改数据库密码且是密文!支持多操作系统如:linux mac os 文件太多分成两部分请...

    Sptring Boot整合mybatis(连接数据库测试及md5加密)

    2. **application.properties** - 配置文件,用于设置数据库连接信息。 3. **Mapper接口** - MyBatis中的SQL映射接口,定义了数据库操作方法。 4. **Mapper XML文件** - 包含具体的SQL语句,与Mapper接口对应。 5. *...

    proxool连接池用户名密码加密

    Proxool的加密功能允许我们在配置中使用加密的用户名和密码,确保即使配置文件被泄露,攻击者也无法直接获取到明文的数据库凭据。这增强了系统的安全性,降低了数据泄露的风险。 在提供的压缩包文件中,可能包含了...

    XML配置文件连接Oracle数据库

    在本场景中,我们将探讨如何使用XML配置文件来连接Oracle数据库。 Oracle数据库是全球领先的数据库管理系统之一,尤其在企业级应用中广泛应用。它提供了丰富的功能和高级特性,如事务处理、数据仓库、分布式数据库...

    spring配置文件加密实现

    总结来说,Spring配置文件加密实现涉及到以下几个关键步骤: 1. 选择并实现加密算法(如AES)。 2. 使用TE网络技术创建透明加密的文件系统。 3. 自定义或调整Spring的启动流程,使其能够通过加密层读取配置文件。 4...

    App.config数据库连接串加密(C#、VB)

    SQL ,本人已测试通过,有人会说直接把连接串写程序里不就行了,可以不用那个连接串的,确实是这样的,不过只要你的项目中DataSet里有TableAdapter,那么App.config中的连接串就是必不可少的,所以就要加密。...

Global site tag (gtag.js) - Google Analytics