Spring Boot 3:轻松使用 Jasypt 实现配置文件信息加密

在现代应用开发中,安全性变得愈发重要。尤其是对于存放在配置文件中的敏感信息,如数据库密码、API 密钥等,更需要做好加密保护。Jasypt(Java Simplified Encryption)是一个方便的 Java 加密库,可以有效地帮助我们实现配置文件中敏感数据的加密与解密。在本文中,我们将介绍如何在 Spring Boot 3 中使用 Jasypt 实现配置文件信息加密。

一、项目依赖

首先,我们需要在 Spring Boot 项目中添加 Jasypt 的依赖。在 pom.xml 文件中添加以下内容:

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.4</version>  <!-- 请根据需要选择合适版本 -->
</dependency>

执行 Maven 命令进行依赖下载:

mvn clean install

二、加密配置

接下来,我们需要对敏感信息进行加密。我们可以使用 Jasypt 提供的命令行工具来加密配置。首先,下载并引入 Jasypt 的 CLI 工具,可以参考 Jasypt 的 GitHub 页面 获取必要的文件。

在命令行中执行以下命令加密你的敏感信息(例如,数据库密码):

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="your-sensitive-value" password="your-encryption-password" 

命令执行后,将输出的结果(密文)复制到你的 Spring Boot 配置文件中。

三、配置文件示例

application.ymlapplication.properties 文件中,我们可以这样使用加密后的值:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: myuser
    password: ENC(encrypted-password-here)  # 请将这里替换为密文

四、配置 Jasypt

为了让 Spring Boot 知道如何解密这些配置,我们需要在启动时配置解密的密码。可以通过两种方式进行配置:

  1. application.ymlapplication.properties 中明确设置:
jasypt:
  encryptor:
    password: your-encryption-password
  1. 或者通过环境变量或 JVM 参数传递密码:
-Djasypt.encryptor.password=your-encryption-password

这样在应用运行时,Jasypt 就会根据提供的密码自动解密配置文件中的敏感信息。

五、代码示例

为了验证配置是否成功,我们可以创建一个简单的 Spring Boot 启动类和控制器来访问这些配置:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class JasyptDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(JasyptDemoApplication.class, args);
    }
}

@RestController
class MyController {

    @Value("${spring.datasource.password}")
    private String dbPassword;

    @GetMapping("/password")
    public String getDbPassword() {
        return dbPassword;  // 返回解密后的数据库密码
    }
}

六、总结

通过 Jasypt,Spring Boot 3 应用能够轻松实现配置文件中敏感数据的加密及解密,有效保障了数据的安全性。用加密的方法来保护敏感信息,可以大幅降低安全风险,对于开发者来说,Jasypt 提供了简单而强大的解决方案。希望通过本文的介绍,你能在项目中有效应用这一工具,提升应用的安全性。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部