重写连接池的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框架通过结合配置文件和解密器,可以有效地保护数据库连接等敏感信息,避免了因信息泄露带来的潜在风险。开发者应根据项目需求选择合适的加密算法和工具,并确保加密密钥的安全管理,以提升应用的...
Tomcat配置数据库连接加密访问
C#2012编写的 自动配置数据库联接字符串的小工具, 配置文件MD5加密。
在这个特定的案例中,开发者采用了一种安全措施,即将数据库连接信息加密并保存在本地的INI配置文件中。这确保了敏感信息如数据库用户名、密码等不被轻易访问或篡改。 INI文件是一种常见的配置文件格式,它以纯文本...
一旦服务器被非法访问或配置文件被非授权查看,数据库的安全性将受到严重威胁。因此,采用加密手段保护数据库凭证至关重要。 #### 加密解密方案 为了提高安全性,我们可以对Tomcat连接池中数据库密码进行加密处理...
.net下C#数据库连接字符串在配置文件中的加密解密类
`加密配置.txt`文件可能是存储加密后的数据库连接参数的地方,我们需要一个解密过程来读取并解码这些信息。 6. **部署与测试**:在实际部署中,确保所有环境(开发、测试、生产)都正确配置了加密和解密机制,并...
本文将深入探讨如何在C#中对数据库连接字符串进行加密,以确保数据的安全性。 首先,我们来了解App.config文件。在.NET框架中,App.config是用于存储应用程序配置信息的文件,包括数据库连接字符串。在项目启动时,...
最后,修改配置文件,配置的密码可以删除,不用显示将创建的 DBPasswordCallback 类注入到 DataSource 中。 数据库密码配置加密操作是保护数据库账号密码的重要手段,通过使用 Jasypt 或 Druid 等加密库,可以有效...
Tomcat 配置文件数据库密码加密,增加factory属性和修改context.xml文件中密码为密文,在lib文件中添加自定义的factory类 代码是jdk1.8版本,包含简单的加密类和http请求,如果使用简单的加密,不需要引用额外的lib...
### VC连接数据库配置文件知识点详解 #### 一、配置文件的重要性及作用 配置文件在软件开发过程中扮演着至关重要的角色,特别是在需要与外部系统(如数据库)进行交互的应用程序中。配置文件通常用于存储应用程序...
为了保护这些信息不被未经授权的用户访问,我们可以对这些配置文件进行加密。本文将深入探讨如何在WinForm项目中实现配置文件的加密与解密。 首先,让我们了解`.config`文件的基本结构。`.config`文件,特别是`app....
对数据库配置文件进行加密存储方案,对数据库配置文件进行加密存储方案,对数据库配置文件进行加密存储方案,对数据库配置文件进行加密存储方案,对数据库配置文件进行加密存储方案
数据库连接池的配置中,通常会在配置文件(如XML或properties文件)中写入加密后的密码。在应用启动时,会读取这个加密后的密码,然后进行解密操作,与用户输入的明文密码进行比对。具体的解密过程取决于加密策略,...
使用AES256加密技术实现tomcat7对连接池数据库密码加密解密,资源中包含加密小程序,小程序实现加密,tomcat中实现解密,方便客户自己修改数据库密码且是密文!支持多操作系统如:linux mac os 文件太多分成两部分请...
2. **application.properties** - 配置文件,用于设置数据库连接信息。 3. **Mapper接口** - MyBatis中的SQL映射接口,定义了数据库操作方法。 4. **Mapper XML文件** - 包含具体的SQL语句,与Mapper接口对应。 5. *...
Proxool的加密功能允许我们在配置中使用加密的用户名和密码,确保即使配置文件被泄露,攻击者也无法直接获取到明文的数据库凭据。这增强了系统的安全性,降低了数据泄露的风险。 在提供的压缩包文件中,可能包含了...
在本场景中,我们将探讨如何使用XML配置文件来连接Oracle数据库。 Oracle数据库是全球领先的数据库管理系统之一,尤其在企业级应用中广泛应用。它提供了丰富的功能和高级特性,如事务处理、数据仓库、分布式数据库...
总结来说,Spring配置文件加密实现涉及到以下几个关键步骤: 1. 选择并实现加密算法(如AES)。 2. 使用TE网络技术创建透明加密的文件系统。 3. 自定义或调整Spring的启动流程,使其能够通过加密层读取配置文件。 4...
SQL ,本人已测试通过,有人会说直接把连接串写程序里不就行了,可以不用那个连接串的,确实是这样的,不过只要你的项目中DataSet里有TableAdapter,那么App.config中的连接串就是必不可少的,所以就要加密。...