首页 > 其他分享 >jasypt-spring-boot 配置文件加密样例

jasypt-spring-boot 配置文件加密样例

时间:2024-01-10 13:55:07浏览次数:22  
标签:加密 配置文件 jasypt boot org import config

jasypt-spring-boot 配置文件加密样例

首先引入pom.xml

<!-- 低版本的jdk(如1.8.0_25-b18)中会出现Failed to bind properties under 'xxx' to java.lang.String,不会在高版本的jdk(如1.8.0_161)运行环境中出现;
原因:加密引发异常。原因是您正在使用强加密算法,并且您尚未在此 Java 虚拟机中安装 Java 加密扩展 (JCE) 无限强度管辖策略文件 -->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot</artifactId>
    <version>3.0.4</version>
</dependency>

加密配置 application.yml

## 配置文件加密
jasypt:
  encryptor:
    password: xxxxxxxxx
    iv-generator-classname: org.jasypt.iv.NoIvGenerator
    algorithm: PBEWithMD5AndTripleDES
    salt-generator-classname: org.jasypt.salt.RandomSaltGenerator
    string-output-type: base64

启动类启用加密@EnableEncryptableProperties


import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableEncryptableProperties
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

加密测试


import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Bean;
import org.springframework.test.context.ActiveProfiles;

/**
 * Created by EalenXie on 2022/4/11 12:15
 */
@ActiveProfiles("dev")
@SpringBootTest
public class EncryptorTest {
    
    /**
     * 与appcation.yml的配置一致
     */
    @Bean(name = "encryptorBean")
    static public StringEncryptor stringEncryptor() {
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword("xxxx");
        config.setAlgorithm("PBEWithMD5AndTripleDES");
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.NoIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        return encryptor;
    }

    @Test
    void testPassEnc(@Autowired StringEncryptor stringEncryptor) {
        String s = stringEncryptor.encrypt("xxxxxxxxxx");
        System.out.println(s);
        Assertions.assertNotNull(s);
    }
}

使用ENC(xxx)为属性进行加密配置

ali:
  access-key-id: ENC(xxxxxxxxxxxxxxxxx==)
  access-key-secret: ENC(O/+xxxxxxxxx/xxxxxxxxx==)

标签:加密,配置文件,jasypt,boot,org,import,config
From: https://www.cnblogs.com/ealenxie/p/17956332

相关文章

  • 对比Spring Boot中的JdbcClient与JdbcTemplate
    本文我们一起看看SpringBoot中JdbcClient和JdbcTemplate之间的差异。以下内容使用的Java和SpringBoot版本为:Java21SpringBoot3.2.1假设我们有一个ICustomerService接口:publicinterfaceICustomerService{List<Customer>getAllCustomer();Optio......
  • 8、SpringBoot2之打包及运行
    为了演示高级启动时动态配置参数的使用,本文在SpringBoot2之配置文件的基础上进行8.1、概述普通的web项目,会被打成一个war包,然后再将war包放到tomcat的webapps目录中;当tomcat启动时,在webapps目录中的war包会自动解压,此时便可访问该web项目的资源或服务;因为......
  • Spring Boot2.x 优雅停机 Graceful Shutdown
    参考https://www.jianshu.com/p/199e419c025ehttps://blog.csdn.net/u014643282/article/details/116004816gpt注意SpringBoot还支持关闭事件监听,在监听事件内可以编写代码实现关闭前的清理工作。环境环境版本说明Windows10VSCode1.85.1Spring......
  • 基于SpringBoot+Vue的流浪动物领养信息系统设计实现(源码+lw+部署文档+讲解等)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......
  • SpringBoot集成WebSocket实现消息推送
    一、前言WebSocket是一种新型的通信协议,它可以在客户端和服务端之间实现双向通信,具有低延迟、高效性等特点,适用于实时通信场景。它是一种基于TCP协议实现的全双工通信协议,使用它可以实现实时通信,不必担心HTTP协议的短连接问题。SpringBoot可以很方便的集成WebSocket实现高效实时的......
  • #星计划# 在OpenHarmony上使用网络组件axios与Spring Boot进行前后端交互
    在OpenHarmony上使用网络组件axios与SpringBoot进行前后端交互#jitoa#此博客由金陵科技学院-开放原子开源社李俊杰编写仓库地址:axiosTest·AtomGit_开放原子开源基金会代码托管平台结果演示:在OpenHarmony上使用网络组件axios与SpringBoot进行前后端交互_哔哩哔哩_bilib......
  • springboot通过自定义注解@Log实现日志打印
    springboot通过自定义注解@Log实现日志打印效果图实操步骤注意,本代码在springboot环境下运行,jdk1.81.引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency>......
  • spring boot自动装配原理
    学习笔记1@SpringBootConfiguration:该注解上有一个@Configuration注解,表示这个springboot启动类是一个配置类,最终要被注入到spring容器中。   2@EnableAutoConfiguration:表示开启自动配置   3@AutoConfigurationPackage,该注解上有一个@Import(AutoConfigurationPacka......
  • 【Spring技术专题】「实战开发系列」保姆级教你SpringBoot整合Mybatis框架实现多数据
    Mybatis是什么Mybatis是一个基于JDBC实现的,支持普通SQL查询、存储过程和高级映射的优秀持久层框架,去掉了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。Mybatis主要思想是将程序中大量的SQL语句剥离出来,配置在配置文件中,以实现SQL的灵活配置。在所有ORM框......
  • 基于SpringBoot+Vue的航班订票管理系统设计实现(源码+lw+部署文档+讲解等)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......