Springboot集成jasypt实现配置文件加密

Jasypt它提供了单密钥对称加密和非对称加密两种加密方式。
单密钥对称加密:一个密钥加盐,可以同时用作内容的加密和解密依据;
非对称加密:使用公钥和私钥两个密钥,才可以对内容加密和解密;
我们以单密钥对称加密方式为例简单演示一下
先引入依赖

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

简单配置流程为配置文件加入秘钥配置项jasypt.encryptor.password(这里演示不使用这种方式,采用启动时-D参数注入,也可以放在配置中心等地方进行读取),并将需要加密的value值替换成预先经过加密的内容ENC(密文)。加密内容格式可以自定义我这里自己配置了格式(light[密文]),配置自定义格式方式如下: 

jasypt:
  encryptor:
    property:
      prefix: "light["
      suffix: "]"

在springboot单元测试的类上加上启动参数 -Djasypt.encryptor.password=qwer1997

import org.jasypt.encryption.StringEncryptor;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class LightElementMybatisApplicationTests {

	@Autowired
	private StringEncryptor stringEncryptor;

	@Test
	void testEncrypt() {
		String encryptStr = stringEncryptor.encrypt("123456");
		System.out.println("加密后的内容:" + encryptStr);
	}

}

运行单元测试获取到加密密文 

替换掉配置文件中的内容 

在springboot启动类上加上启动参数 -Djasypt.encryptor.password=qwer1997,添加方式和测试类一样 ,启动项目没有发生报错,调用查询接口查询一下数据,数据正常返回,说明集成成功。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring Boot应用程序中使用Jasypt进行配置文件加密和解密,可以按照以下步骤进行操作: 1. 添加Jasypt依赖项 在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>{jasypt-version}</version> </dependency> ``` 其中,{jasypt-version}是Jasypt版本号,可以根据需要进行修改。 2. 配置加密密码 在application.properties或者application.yml文件中添加以下配置: ``` jasypt.encryptor.password=your_password ``` 其中,your_password是你用来加密和解密配置文件的密码。 3. 加密配置文件 使用Jasypt提供的命令行工具,对需要加密配置文件进行加密。例如,对application.yml进行加密,可以使用以下命令: ``` java -cp jasypt-{jasypt-version}.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="your_plaintext_config" password="your_password" algorithm=PBEWithMD5AndDES ``` 其中,your_plaintext_config是明文配置文件,your_password是加密密码,algorithm是加密算法。 加密后的配置文件应该包含ENC()前缀,例如: ``` spring: datasource: url: jdbc:mysql://localhost:3306/mydb?serverTimezone=UTC username: ENC(6kInJ6wB1JQqGz6Z7Qv+Q2z3Oc1k1f1+) password: ENC(Az7+0fJEWfDfPQXa/3GvZQ==) ``` 4. 解密配置文件 Spring Boot应用程序启动时,Jasypt会自动解密加密配置文件。因此,无需做任何额外的配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值