`

jasypt 实现对配置文件中的数据密码进行加密

    博客分类:
  • java
 
阅读更多

    在开发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);

        

        

        

 

    }

 

}

 

 

分享到:
评论

相关推荐

    配置文件内容加密jasypt demo

    在Spring Boot中,我们可以利用jasypt来加密配置文件(如application.properties或application.yml)中的敏感数据,确保即使配置文件被泄露,也无法直接获取到原始的明文信息。 首先,我们需要在项目中引入jasypt的...

    JASYPT实现项部部署配置文件加密

    通过以上步骤,我们可以利用JASYPT对项目部署配置文件中的敏感信息进行加密,从而提高系统的安全性。在实际项目中,结合版本控制、自动化部署等最佳实践,可以确保在保证数据安全的同时,也保证了开发和运维的效率。

    基于Jasypt对SpringBoot配置文件加密

    使用Jasypt对SpringBoot配置文件进行加密,可以有效保护配置文件中的敏感信息不被非法获取。 首先,需要在项目的pom.xml文件中加入Jasypt的依赖项。根据所提供的文件内容,可以发现引用了一个特定版本的Jasypt ...

    jasypt加密_spring整合.zip

    3. 加密敏感信息:使用Jasypt提供的工具类,如`BasicConsoleEncryptor`或`StandardPBEStringEncryptor`,将Hibernate配置文件中的敏感信息进行加密,如数据库URL、用户名和密码等。 4. 更新Hibernate配置:将加密后...

    jasypt加密解密工具含源码有界面

    它提供了简单的API,使得开发者可以快速集成到项目中,进行文本、配置文件甚至数据库密码的加密。Jasypt的突出优点在于其可读性,加密后的字符串依然保持可读性,因为它们通常包含可识别的前缀和后缀。 二、Jasypt...

    Springboot+PBEWITHHMACSHA512ANDAES-128配置文件密码加密

    本文将深入探讨如何在Spring Boot项目中利用PBEWITHHMACSHA512ANDAES-128算法对配置文件中的密码进行加密。 首先,让我们理解PBEWITHHMACSHA512ANDAES-128是什么。这是一种密码基于密钥的加密(Password-Based ...

    springboot之yml配置文件信息加密.docx

    在项目中引入 Jasypt 的 jar 包 org.jasypt:iasypt:1.9.2,使用 StringEncryptor 接口中的 encrypt 方法对敏感信息进行加密。加密时设置好密钥(password),然后调用 encrypt 方法通过 PBEWithMD5AndDES 算法来...

    java源码:Java加密包 Jasypt.zip

    同时,Jasypt还支持在配置文件和代码中使用加密的值,如数据库连接密码,这样可以避免敏感信息明文存储。 Jasypt的主要功能包括: 1. **文本加密**:通过`BasicTextEncryptor`类,可以对字符串进行加密,加密后的...

    Java加密包 Jasypt

    例如,你可以使用`EncryptedPropertyPlaceholderConfigurer`来加密和解密Spring配置文件中的属性值。 2. **集成友好:** Jasypt可以无缝集成到各种Java应用框架中,如Spring、Hibernate等,为这些框架提供了加密...

    Python库 | jasypt4py-0.0.3-py2.py3-none-any.whl

    3. **环境变量和配置文件加密**:开发者可以加密敏感的环境变量或配置文件,确保即使代码被查看,敏感信息也不会泄露。 4. **集成到现有应用程序**:由于`jasypt4py`与JASYPT兼容,因此已经在Java应用中使用JASYPT...

    基于java的开发源码-加密包 Jasypt.zip

    2. **环境变量和配置文件加密**:Jasypt能够直接与Spring框架集成,允许开发者将敏感的环境变量或配置文件中的密码、密钥等信息进行加密,确保在不安全的环境中这些数据的安全性。 3. **字符串加密**:Jasypt可以对...

    jasypt.jar

    2. **环境变量和属性文件加密**:在配置文件中,常常需要存储敏感信息如数据库连接密码。Jasypt允许开发者加密这些信息,并在运行时自动解密,从而增强了安全性。 3. **程序内集成**:Jasypt可以与Spring框架无缝...

    java简单加密包(jasypt-1.8-dist.zip)

    JASYPT还支持在配置文件中使用加密的值,例如在Spring框架的应用中,你可以直接在properties或yaml文件中使用加密的数据库连接字符串或其他敏感信息。这样,即使配置文件被泄露,攻击者也无法直接读取到明文信息,...

    jasypt-1.9.3.jar

    &gt;根据Jasypt官方文档,Jasypt可用于加密任务与应用程序,例如加密密码、敏感信息和数据通信、创建完整检查数据的sums. 其他性能包括高安全性、基于标准的加密技术、可同时单向和双向加密的加密密码、文本、数字和二...

    jasypt-1.7.1.jar.zip 下载

    - **集成性**:jasypt可无缝集成到Spring框架中,对于配置文件中的敏感信息进行加密处理,增强了应用的安全性。 - **多算法支持**:支持多种加密算法,如AES、Blowfish等,可根据需求选择合适的加密强度。 - **...

    Javajasypt解决SpringBoot项目application配置文件数据库密码上传git暴露问题解决演示代码

    在Spring Boot项目中,Jasypt可以与Spring的属性配置机制无缝集成,允许我们加密配置文件中的密码,只在运行时通过一个解密密钥进行解密。 以下是使用Jasypt解决Spring Boot项目配置文件中数据库密码暴露问题的步骤...

    Spring数据库连接等配置加密

    Spring框架作为Java领域最常用的轻量级框架,其配置文件中通常包含了数据库连接信息,如URL、用户名和密码等敏感数据。为了防止这些信息被非法获取,我们需要对它们进行加密处理。本文将详细探讨"Spring数据库连接等...

    基于Java的实例源码-加密包 Jasypt.zip

    Jasypt的核心功能包括文本加密、密码哈希、以及与配置文件或数据库中的敏感数据交互。它支持多种加密算法,如AES(高级加密标准)、Blowfish、DES(数据加密标准)等。这些算法提供了不同级别的安全强度,可以根据...

    基于java的加密包 Jasypt.zip

    Jasypt提供了丰富的API,可以对字符串、文件、配置文件中的属性甚至数据库查询语句进行加密。它支持多种加密技术,包括基本的对称加密(如SimpleStringEncryption)以及更高级的对称和非对称加密算法,如AES、Blow...

    jasypt-1.5开发包

    - Jasypt可以无缝集成到Spring框架中,通过配置文件或环境变量设置加密密码,使得配置文件中的敏感信息自动加密。 5. **命令行工具** - Jasypt-1.5可能包含了命令行工具,允许开发者在终端上直接对文本进行加密和...

Global site tag (gtag.js) - Google Analytics