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

Spring加载的Properties文件 加密 解密 用户名、密码

阅读更多

原文转自:http://blog.sina.com.cn/s/blog_451f596201014zdh.html

Spring 加载Properties 文件,加密用户名、密码

目标:要加密spring的jdbc配置文件的密码口令。

实现思路:重写加载器的方法,做到偷梁换柱,在真正使用配置之前完成解密。

1、扩展

package com.lavasoft.freamwork.ext.spring;

 

import com.lavasoft.freamwork.common.ThreeDES;

import org.springframework.beans.BeansException;

import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

 

import java.util.Properties;

 

 

public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer{

 

        @Override

        protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props)

                        throws BeansException {

                String password = props.getProperty("jdbc.password");

                if (password != null) {

                        //解密jdbc.password属性值,并重新设置

                        props.setProperty("jdbc.password", ThreeDES.getDesString(password));

                }

                super.processProperties(beanFactory, props);

 

        }

}

 

2、配置

        <!-- 不加密时候使用 -->

        <!--<context:property-placeholder location="classpath:jdbc.properties,classpath:tdmc.properties"/>

           -->

 

        <!-- 加密时候使用 -->

        <bean id="propertyConfig" class="com.lavasoft.freamwork.ext.spring.PropertyPlaceholderConfigurerExt">

                <property name="locations">

                        <list>

                                <value>classpath:jdbc.properties</value>

                                <value>classpath:tdmc.properties</value>

                        </list>

                </property>

        </bean>

 

3、jdbc配置文件

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://127.0.0.1:3306/mysql

jdbc.user=root

#jdbc.password=123456

jdbc.password=SFFDLKD

 

分享到:
评论

相关推荐

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

    在标准配置下,Druid允许开发者通过配置文件(如`druid.properties`或`application.properties`)来设置数据库连接的用户名、密码和其他参数。然而,这些敏感信息在配置文件中明文存储可能会带来安全风险,尤其是在...

    Springboot项目对数据库用户名密码实现加密过程解析

    然后,我们需要将加密后的密码密文配置到Spring Boot的配置文件中,例如application.properties或application.yml文件中: spring.datasource.password=ENC(2p9NblOkkwNqsYhDruu5TFPR1RgkL9aH) 其中,ENC()函数...

    Spring数据库连接等配置加密

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

    Spring Boot 实现配置文件加解密原理

    Spring Boot 的配置文件通常是以 Properties 文件或 YML 文件的形式存在的,而这些文件中可能包含敏感信息,例如数据库连接密码、API 密钥等。如果这些信息被泄露,将会对应用程序的安全性产生严重的影响。因此,...

    Spring中jdbc.properties属性文件进行密文处理

    这是一个简单的案例用来实现Spring中jdbc.properties属性文件进行密文处理,代码中的学生实体自己根据需要在数据库中进行创建

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

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

    spring中properties加密

    本文将深入探讨如何在Spring项目中实现properties文件的加密。 1. **理解Properties文件** Spring框架广泛使用`properties`文件来存储配置信息。这些文件通常是纯文本格式,容易被读取,从而增加了安全性风险。...

    在Spring中使用加密外部属性文件

    这个子类需要添加解密逻辑,以便在Spring容器初始化时读取加密属性文件,解密后再进行属性替换。 2. 在自定义的`EncryptedPropertyPlaceholderConfigurer`中,你可以添加一个方法来处理加密的属性值。例如,可以...

    spring读取properties

    在Spring框架中,读取和使用Properties文件是一种常见的配置方式,尤其当涉及到数据库连接、环境变量等需要在运行时动态加载或更改的信息时。本文将深入解析如何在Spring环境中读取Properties文件,包括配置步骤、...

    SpringBoot(七)SpringBoot整合Druid实现数据库密码加密.pdf

    接下来,我们需要在`application.properties`文件中配置Druid连接池,并使用加密后的密码和公钥。 ##### 4.1 配置 application.properties 文件 ```properties spring.datasource.druid.username=root # 使用加密...

    Spring数据源及配置文件数据加密实现过程详解

    Spring数据源及配置文件数据加密实现过程详解 Spring Framework是Java企业级应用程序的最流行框架之一,提供了许多强大的功能来简化企业级应用程序的开发。其中,数据源(DataSource)是Spring Framework中最重要...

    Spring@PropertySource 配置文件自定义加密、自定义Yaml文件加载

    1. **配置加载顺序**:Spring加载配置文件时有默认的顺序,如果你同时使用了加密的.properties和YAML配置,需要合理安排加载顺序,以保证依赖关系正确。 2. **自定义`ApplicationContextInitializer`**:如果你需要...

    Spring加载加密的配置文件详解

    现在,当Spring加载`db.properties`时,`EncryptPropertyPlaceholderConfigurer`会自动解密`db.password`,并将其作为安全的密码值传递给应用程序的其他组件。 总之,通过自定义`PropertyPlaceholderConfigurer`...

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

    2. **配置文件加密**:使用加密工具对包含数据库配置的properties或yaml文件进行加密,然后在应用程序启动时解密。例如,可以使用Apache Commons Codec库的Base64算法进行编码解码。 3. **Spring Cloud Config ...

    spring配置文件加密方法示例

    在`jdbc.properties`文件中,我们将用户名和密码存储为加密后的字符串。这些字符串应该使用相同的加密秘钥进行加密,以便在运行时能正确解密。 总结一下,Spring配置文件加密方法的步骤包括: 1. 创建一个自定义...

    spring中的数据源配置信息加密方案

    在Spring框架中,数据源(DataSource)是连接数据库的关键组件,通常包含敏感信息,如数据库URL、用户名和密码。为了确保这些信息的安全,我们需要对它们进行加密。本篇将详细介绍如何在Spring应用中实现数据源配置...

    web应用数据库密码加密

    Spring Boot和Spring框架默认使用YAML或Properties文件来配置数据库连接信息,包括用户名和密码。为了保护这些敏感信息,我们可以使用密码加密技术。Spring Boot提供了`jasypt-spring-boot-starter`这个库,它允许...

    Spring配置加密方案收集.pdf

    我们需要在Spring的配置文件(如`applicationContext.xml`)中配置`PropertyPlaceholderConfigurer`,指定属性文件的位置,并提供一个自定义的`PropertiesPersister`,这个`PropertiesPersister`将调用我们的加密...

    SpringBoot控制器统一的响应体加密与请求体解密的注解处理方式

    为了在项目中使用这些自定义注解,我们需要在SpringBoot的配置文件(`application.yml`或`application.properties`)中配置相关的加密密钥和算法。例如: ```yaml encrypt: algorithm: AES # 默认加密算法 key: ...

    SpringBoot 集成 Jasypt 对数据库加密以及踩坑

    可以根据需要调用这两个方法来进行密码的加密和解密。 需要注意的是,在使用 Jasypt 进行加密时,需要确保加密算法的正确性,以免导致加密失败。同时,也需要注意 Jasypt 的版本问题,以免遇到版本不兼容的问题。

Global site tag (gtag.js) - Google Analytics