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=]
备注
- jasypt每次加密的结果都不相同,但是解密的结果是一致的
- 配置需加密的属性值时,将加密后的值放入到prefix和suffix中
- 重写的处理类必须为encryptablePropertyResolver
分享到:
相关推荐
使用Jasypt对SpringBoot配置文件进行加密,可以有效保护配置文件中的敏感信息不被非法获取。 首先,需要在项目的pom.xml文件中加入Jasypt的依赖项。根据所提供的文件内容,可以发现引用了一个特定版本的Jasypt ...
Springboot配置文件内容加密代码实例 Springboot配置文件内容加密代码实例是指在Springboot项目中对配置文件的敏感信息进行加密,以保护项目的安全。以下是对该实例的详细介绍。 一、加密工具类的创建 在使用...
同时,对于敏感数据,最好使用环境变量、密钥管理服务等方式存储,而不是直接写入代码或配置文件。 总之,"springboot工程jar包加密"是一个关于保护Java应用安全的重要主题,通过使用工具如xjar,我们可以有效地...
4. **配置文件加密**: - **Jasypt**:在Spring Boot中,我们可以使用Jasypt库来对敏感信息如密码进行加密。Jasypt提供了`encrypt`和`decrypt`命令行工具,以及`BasicTextEncryptor`类在代码中加密和解密。 5. **...
Spring Boot 之 YML 配置文件信息加密 知识点 1: Jasypt 算法介绍 Jasypt 是一个 Java 库,提供了一种简单的方式来为项目增加加密功能。Jasypt 使用的加密算法是 PBEWithMD5AndDES(对称加密),中文名“基于口令...
示例代码通常包括混淆工具的配置文件(如proguard.conf)和加密工具的配置文件(如encryption.cfg),这两个文件中会定义混淆和加密的具体规则,例如保留特定的类或方法不被混淆或加密。 总之,对SpringBoot项目的...
- `pom.xml`: Maven配置文件,用于管理依赖和插件。 - `src/main/java`: 主要Java源代码目录。 - `src/test/java`: 测试Java源代码目录。 - `target`: 编译后生成的目标文件目录。 ##### 2.2 添加必要的依赖 在`...
采用springboot的基于Netty的SSL加密PKI认证通信,里面模拟了Netty的客户端和服务端的证书认证规则,同时分为单向认证和双向认证,信任证书链并对RA颁发的证书来进行验签,实现了双向和单向加密通信,保障了数据的...
在Spring Boot中,我们可以利用jasypt来加密配置文件(如application.properties或application.yml)中的敏感数据,确保即使配置文件被泄露,也无法直接获取到原始的明文信息。 首先,我们需要在项目中引入jasypt的...
SpringBoot(27) 整合jasypt加密yml配置文件
本文将介绍两种在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配置文件-源代码+...
本文将深入探讨如何在Spring Boot项目中利用PBEWITHHMACSHA512ANDAES-128算法对配置文件中的密码进行加密。 首先,让我们理解PBEWITHHMACSHA512ANDAES-128是什么。这是一种密码基于密钥的加密(Password-Based ...
这些协议通过加密连接提供更高的安全性。 11. **静态资源管理** 题目中提到了`static-files`,这可能是指Spring Boot中的静态资源管理。Spring Boot默认将`src/main/resources/static`目录下的文件作为Web应用的...
10. **项目结构**: 项目可能包含配置文件(如application.properties或.yml)、源代码(包括Controller、Service、Repository等)、测试类以及必要的资源文件。开发者可以使用IDEA这样的集成开发环境直接打开和运行...
在 SpringBoot 中,需要在配置文件中添加以下配置以启用 SSL 安全启动: `server.ssl.enabled=true` 访问 HTTPS 现在,可以使用 HTTPS 协议来访问 SpringBoot 应用程序。在 IE 浏览器中,可以输入以下 URL: `...
在Spring Boot项目开发中,合理地管理配置文件是非常重要的。随着项目的迭代和部署环境的增多,对配置的修改变得越来越频繁。如果在代码中直接修改配置文件,可能会导致版本控制混乱,并且在每次更改时都需要重新...
通过实现 EnvironmentPostProcessor 接口,可以对 Spring Boot 应用程序的配置文件进行加密和解密。 Spring Boot 的配置文件通常是以 Properties 文件或 YML 文件的形式存在的,而这些文件中可能包含敏感信息,...
SpringBoot配置详解 Spring Boot应用程序 Properties配置详解 Spring Boot是一种基于Java的开源框架,旨在简化基于Spring的应用程序的开发。Spring Boot提供了许多特性,包括自动配置、starter依赖项、外部化配置...
本项目聚焦于一个特定的功能:电子签名,并结合文件发送与自我加密,这些都是现代企业信息化建设中的重要组成部分。 首先,我们要理解“电子签名”的概念。电子签名是一种通过数字方式验证文档完整性和发件人身份的...