在开发web程序时,配置数据库连接时,连接数据库的用户名和密码大多都是使用明文,这样做很不安全。
下面我们使用jasypt 来对配置文件中的数据库密码进行加密:
1.下载 jasypt
compile group: 'org.jasypt', name: 'jasypt', version: '1.9.2'
compile group: 'org.jasypt', name: 'jasypt-spring31', version: '1.9.0'
2. spring 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd ">
<bean id="environmentVariablesConfiguration"
class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
<property name="algorithm" value="PBEWithMD5AndDES" />
<property name="password" value="jasypt" />
<!-- <property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD" />
密钥passwordEnvName使用环境变量APP_ENCRYPTION_PASSWORD 中设置的值
-->
</bean>
<!-- -->
<!-- The will be the encryptor used for decrypting configuration values. -->
<!-- -->
<bean id="configurationEncryptor"
class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
<property name="config" ref="environmentVariablesConfiguration" />
</bean>
<bean id="propertyConfigurer"
class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
<constructor-arg ref="configurationEncryptor" />
<property name="locations">
<list>
<value>classpath:configs/jdbc.properties</value>
</list>
</property>
</bean>
</beans>
3. jdbc.properties 数据库配置文件
jdbc.driver =oracle.jdbc.OracleDriver
#oracle.jdbc.OracleDriver
jdbc.url = jdbc:oracle:thin:@192.168.6.9:1521:YUN
jdbc.user = yun
jdbc.password =ENC(uQoEyRHMVxvgi0zddFcRx3NpodYP/pr/)
注意:uQoEyRHMVxvgi0zddFcRx3NpodYP/pr/ 为加密后的密码;使用ENC 包含密码后,连接数据库时jasypt 就会解密加密后的密码,还原成明文。
3.生成加密字符串的方法
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig;
import org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer;
/**
*把密文放到配置文件中的时候要注意:
* ENC(密文)
* @author
*/
public class ConfigEncryptUtils {
public static void main(String[] args){
//加密工具
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
//加密配置
EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
config.setAlgorithm("PBEWithMD5AndDES");
//PBEWithMD5AndTripleDES
//生成秘钥的盐
config.setPassword("jasypt");
//应用配置
encryptor.setConfig(config);
//明文密码
String plaintext="yunboceceshi";
//加密
String ciphertext=encryptor.encrypt(plaintext);
System.out.println(plaintext + " : " + ciphertext);
//解密过程信息
//解密 过程
String pText=encryptor.decrypt(ciphertext);
System.out.println(ciphertext + " : " + pText);
}
}
相关推荐
在Spring Boot中,我们可以利用jasypt来加密配置文件(如application.properties或application.yml)中的敏感数据,确保即使配置文件被泄露,也无法直接获取到原始的明文信息。 首先,我们需要在项目中引入jasypt的...
通过以上步骤,我们可以利用JASYPT对项目部署配置文件中的敏感信息进行加密,从而提高系统的安全性。在实际项目中,结合版本控制、自动化部署等最佳实践,可以确保在保证数据安全的同时,也保证了开发和运维的效率。
使用Jasypt对SpringBoot配置文件进行加密,可以有效保护配置文件中的敏感信息不被非法获取。 首先,需要在项目的pom.xml文件中加入Jasypt的依赖项。根据所提供的文件内容,可以发现引用了一个特定版本的Jasypt ...
3. 加密敏感信息:使用Jasypt提供的工具类,如`BasicConsoleEncryptor`或`StandardPBEStringEncryptor`,将Hibernate配置文件中的敏感信息进行加密,如数据库URL、用户名和密码等。 4. 更新Hibernate配置:将加密后...
它提供了简单的API,使得开发者可以快速集成到项目中,进行文本、配置文件甚至数据库密码的加密。Jasypt的突出优点在于其可读性,加密后的字符串依然保持可读性,因为它们通常包含可识别的前缀和后缀。 二、Jasypt...
本文将深入探讨如何在Spring Boot项目中利用PBEWITHHMACSHA512ANDAES-128算法对配置文件中的密码进行加密。 首先,让我们理解PBEWITHHMACSHA512ANDAES-128是什么。这是一种密码基于密钥的加密(Password-Based ...
在项目中引入 Jasypt 的 jar 包 org.jasypt:iasypt:1.9.2,使用 StringEncryptor 接口中的 encrypt 方法对敏感信息进行加密。加密时设置好密钥(password),然后调用 encrypt 方法通过 PBEWithMD5AndDES 算法来...
同时,Jasypt还支持在配置文件和代码中使用加密的值,如数据库连接密码,这样可以避免敏感信息明文存储。 Jasypt的主要功能包括: 1. **文本加密**:通过`BasicTextEncryptor`类,可以对字符串进行加密,加密后的...
例如,你可以使用`EncryptedPropertyPlaceholderConfigurer`来加密和解密Spring配置文件中的属性值。 2. **集成友好:** Jasypt可以无缝集成到各种Java应用框架中,如Spring、Hibernate等,为这些框架提供了加密...
3. **环境变量和配置文件加密**:开发者可以加密敏感的环境变量或配置文件,确保即使代码被查看,敏感信息也不会泄露。 4. **集成到现有应用程序**:由于`jasypt4py`与JASYPT兼容,因此已经在Java应用中使用JASYPT...
2. **环境变量和配置文件加密**:Jasypt能够直接与Spring框架集成,允许开发者将敏感的环境变量或配置文件中的密码、密钥等信息进行加密,确保在不安全的环境中这些数据的安全性。 3. **字符串加密**:Jasypt可以对...
2. **环境变量和属性文件加密**:在配置文件中,常常需要存储敏感信息如数据库连接密码。Jasypt允许开发者加密这些信息,并在运行时自动解密,从而增强了安全性。 3. **程序内集成**:Jasypt可以与Spring框架无缝...
JASYPT还支持在配置文件中使用加密的值,例如在Spring框架的应用中,你可以直接在properties或yaml文件中使用加密的数据库连接字符串或其他敏感信息。这样,即使配置文件被泄露,攻击者也无法直接读取到明文信息,...
>根据Jasypt官方文档,Jasypt可用于加密任务与应用程序,例如加密密码、敏感信息和数据通信、创建完整检查数据的sums. 其他性能包括高安全性、基于标准的加密技术、可同时单向和双向加密的加密密码、文本、数字和二...
- **集成性**:jasypt可无缝集成到Spring框架中,对于配置文件中的敏感信息进行加密处理,增强了应用的安全性。 - **多算法支持**:支持多种加密算法,如AES、Blowfish等,可根据需求选择合适的加密强度。 - **...
在Spring Boot项目中,Jasypt可以与Spring的属性配置机制无缝集成,允许我们加密配置文件中的密码,只在运行时通过一个解密密钥进行解密。 以下是使用Jasypt解决Spring Boot项目配置文件中数据库密码暴露问题的步骤...
Spring框架作为Java领域最常用的轻量级框架,其配置文件中通常包含了数据库连接信息,如URL、用户名和密码等敏感数据。为了防止这些信息被非法获取,我们需要对它们进行加密处理。本文将详细探讨"Spring数据库连接等...
Jasypt的核心功能包括文本加密、密码哈希、以及与配置文件或数据库中的敏感数据交互。它支持多种加密算法,如AES(高级加密标准)、Blowfish、DES(数据加密标准)等。这些算法提供了不同级别的安全强度,可以根据...
Jasypt提供了丰富的API,可以对字符串、文件、配置文件中的属性甚至数据库查询语句进行加密。它支持多种加密技术,包括基本的对称加密(如SimpleStringEncryption)以及更高级的对称和非对称加密算法,如AES、Blow...
- Jasypt可以无缝集成到Spring框架中,通过配置文件或环境变量设置加密密码,使得配置文件中的敏感信息自动加密。 5. **命令行工具** - Jasypt-1.5可能包含了命令行工具,允许开发者在终端上直接对文本进行加密和...