在Spring Boot中应用Jasypt以加密配置信息

在Spring Boot应用中,对配置信息进行加密是一项加强应用安全性的重要措施。Jasypt(Java Simplified Encryption)提供了一系列工具和类库,用于在Java应用中对属性文件、配置文件中的敏感信息进行加密。以下是将Jasypt应用于Spring Boot项目以加密配置信息的步骤。

1. 引入Jasypt依赖

首先,需要在 pom.xml文件中添加Jasypt Spring Boot的依赖:

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

确保版本号与Spring Boot版本相兼容。

2. 配置加密密钥

接下来,需要为加密和解密操作指定一个密钥。这个密钥可以通过环境变量或系统属性进行设置,以防止将密钥直接写在代码或配置文件中。

例如,可以在应用启动时通过系统属性设置:

java -jar yourapp.jar --jasypt.encryptor.password=your_secret_key

或者在 application.properties文件中这样设置:

jasypt.encryptor.password=your_secret_key

3. 加密配置信息

在设置了密钥后,使用Jasypt提供的命令行工具或Java类库来加密所需保护的配置信息。

例如,使用Jasypt的命令行工具进行加密:

encrypt input="your_sensitive_data" password=your_secret_key algorithm=PBEWithMD5AndDES

执行上述命令会输出加密后的字符串,类似:

ENC(abCdEfGhijKLmnoPqRstUvWxyz==)

4. 在配置文件中使用加密数据

将加密后的数据放入配置文件时,需要使用 ENC()包裹加密字符串。

例如在 application.properties中使用:

myapp.secret=ENC(abCdEfGhijKLmnoPqRstUvWxyz==)

或者在 application.yml中:

myapp:
  secret: 'ENC(abCdEfGhijKLmnoPqRstUvWxyz==)'

5. 访问解密后的数据

在Spring Boot应用中,通过正常的方式访问配置属性,Jasypt会自动解密那些使用 ENC()包裹的属性值。

@Value("${myapp.secret}")
private String secret;
posted @ 2025-09-07 11:33  别说我的眼泪有点咸  阅读(23)  评论(0)    收藏  举报