`
richand730
  • 浏览: 3482 次
社区版块
存档分类
最新评论

springboot配置文件加密

阅读更多

springboot配置文件加密

maven配置

 <dependency>
     <groupId>com.github.ulisesbocchio</groupId>
     <artifactId>jasypt-spring-boot-starter</artifactId>
     <version>3.0.2</version>
 </dependency>

重写解密处理类

@Component("encryptablePropertyResolver")
public class BasicEncryptablePropertyResolver implements EncryptablePropertyResolver {
    private final PooledPBEStringEncryptor encryptor;
    /**
     * 标识配置文件中需要解密的值前缀
     */
    private final String prefix = "ENC[";
    /**
     * 标识配置文件中需要解密的值后缀
     */
    private final String suffix = "]";

    public BasicEncryptablePropertyResolver(){
        encryptor = new PooledPBEStringEncryptor();
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        //加密盐
        config.setPassword("mioto-project");
        config.setAlgorithm("PBEWithMD5AndDES");
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
    }

    @Override
    public String resolvePropertyValue(String value) {
        if (value != null && value.startsWith(prefix) && value.endsWith(suffix)) {
            return encryptor.decrypt(value.substring(prefix.length() - 1));
        }
        return value;
    }
}

加解密测试

 

 public static void main(String[] args) {
        BasicEncryptablePropertyResolver encryptablePropertyResolver = new BasicEncryptablePropertyResolver();
        System.out.println(encryptablePropertyResolver.encryptor.encrypt("mioto88888"));
        System.out.println(encryptablePropertyResolver.resolvePropertyValue("mioto[gzhFpmXjYXyITMDOZsCZylyBZuQkylidN/d4BfBu860=]"));
    }

 

编写配置文件需加密属性值

 

spring.datasource.password=ENC[gYwKmL6bj7TSqondKvfnWhC9DYT9IsKvVkpsl+ve6Gw=]

 备注

  1. jasypt每次加密的结果都不相同,但是解密的结果是一致的
  2. 配置需加密的属性值时,将加密后的值放入到prefix和suffix中
  3. 重写的处理类必须为encryptablePropertyResolver
分享到:
评论

相关推荐

    基于Jasypt对SpringBoot配置文件加密

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

    Springboot配置文件内容加密代码实例

    Springboot配置文件内容加密代码实例 Springboot配置文件内容加密代码实例是指在Springboot项目中对配置文件的敏感信息进行加密,以保护项目的安全。以下是对该实例的详细介绍。 一、加密工具类的创建 在使用...

    springboot工程jar包加密

    同时,对于敏感数据,最好使用环境变量、密钥管理服务等方式存储,而不是直接写入代码或配置文件。 总之,"springboot工程jar包加密"是一个关于保护Java应用安全的重要主题,通过使用工具如xjar,我们可以有效地...

    【SpringBoot探索三】添加配置文件参考案例

    4. **配置文件加密**: - **Jasypt**:在Spring Boot中,我们可以使用Jasypt库来对敏感信息如密码进行加密。Jasypt提供了`encrypt`和`decrypt`命令行工具,以及`BasicTextEncryptor`类在代码中加密和解密。 5. **...

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

    Spring Boot 之 YML 配置文件信息加密 知识点 1: Jasypt 算法介绍 Jasypt 是一个 Java 库,提供了一种简单的方式来为项目增加加密功能。Jasypt 使用的加密算法是 PBEWithMD5AndDES(对称加密),中文名“基于口令...

    SpringBoot项目Jar包加密防止反编译详细讲解(值得珍藏)

    示例代码通常包括混淆工具的配置文件(如proguard.conf)和加密工具的配置文件(如encryption.cfg),这两个文件中会定义混淆和加密的具体规则,例如保留特定的类或方法不被混淆或加密。 总之,对SpringBoot项目的...

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

    - `pom.xml`: Maven配置文件,用于管理依赖和插件。 - `src/main/java`: 主要Java源代码目录。 - `src/test/java`: 测试Java源代码目录。 - `target`: 编译后生成的目标文件目录。 ##### 2.2 添加必要的依赖 在`...

    基于springboot的Netty的SSL加密PKI认证通信

    采用springboot的基于Netty的SSL加密PKI认证通信,里面模拟了Netty的客户端和服务端的证书认证规则,同时分为单向认证和双向认证,信任证书链并对RA颁发的证书来进行验签,实现了双向和单向加密通信,保障了数据的...

    配置文件内容加密jasypt demo

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

    SpringBoot(27) 整合jasypt加密yml配置文件

    SpringBoot(27) 整合jasypt加密yml配置文件

    SpringBoot配置文件中数据库密码加密两种方案(推荐)

    本文将介绍两种在SpringBoot配置文件中对数据库密码进行加密的方法:使用Jasypt库进行加密和利用Druid数据连接池的内置加密功能。 **Jasypt加密** Jasypt是一个强大的Java加密库,易于集成到Spring Boot项目中。...

    Java开发案例-springboot-14-整合jasypt加密yml配置文件-源代码+文档.rar

    Java开发案例-springboot-14-整合jasypt加密yml配置文件-源代码+文档.rar Java开发案例-springboot-14-整合jasypt加密yml配置文件-源代码+文档.rar Java开发案例-springboot-14-整合jasypt加密yml配置文件-源代码+...

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

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

    springboot 管理ftp文件系统,上传,下载,ftp

    这些协议通过加密连接提供更高的安全性。 11. **静态资源管理** 题目中提到了`static-files`,这可能是指Spring Boot中的静态资源管理。Spring Boot默认将`src/main/resources/static`目录下的文件作为Web应用的...

    spring(tomcat)前后端数据加密传输demo

    10. **项目结构**: 项目可能包含配置文件(如application.properties或.yml)、源代码(包括Controller、Service、Repository等)、测试类以及必要的资源文件。开发者可以使用IDEA这样的集成开发环境直接打开和运行...

    springboot下配置SSL证书HTTPS访问

    在 SpringBoot 中,需要在配置文件中添加以下配置以启用 SSL 安全启动: `server.ssl.enabled=true` 访问 HTTPS 现在,可以使用 HTTPS 协议来访问 SpringBoot 应用程序。在 IE 浏览器中,可以输入以下 URL: `...

    springboot配置文件抽离 git管理统 配置中心详解

    在Spring Boot项目开发中,合理地管理配置文件是非常重要的。随着项目的迭代和部署环境的增多,对配置的修改变得越来越频繁。如果在代码中直接修改配置文件,可能会导致版本控制混乱,并且在每次更改时都需要重新...

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

    通过实现 EnvironmentPostProcessor 接口,可以对 Spring Boot 应用程序的配置文件进行加密和解密。 Spring Boot 的配置文件通常是以 Properties 文件或 YML 文件的形式存在的,而这些文件中可能包含敏感信息,...

    SpringBoot配置详解

    SpringBoot配置详解 Spring Boot应用程序 Properties配置详解 Spring Boot是一种基于Java的开源框架,旨在简化基于Spring的应用程序的开发。Spring Boot提供了许多特性,包括自动配置、starter依赖项、外部化配置...

    java springboot 电子签名 文件发送自己签加密

    本项目聚焦于一个特定的功能:电子签名,并结合文件发送与自我加密,这些都是现代企业信息化建设中的重要组成部分。 首先,我们要理解“电子签名”的概念。电子签名是一种通过数字方式验证文档完整性和发件人身份的...

Global site tag (gtag.js) - Google Analytics