在 Spring Boot 项目里运用 Jasypt 实现配置文件的加密。
要在pom.xml
文件中添加 Jasypt 的依赖。
xml
xml 体验AI代码助手 代码解读复制代码<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
有两种方式可以配置加密密钥,分别是通过环境变量和命令行参数。
在application.properties
或者application.yml
中设置如下内容:
properties
ini 体验AI代码助手 代码解读复制代码jasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD}
启动应用程序时,使用以下命令添加参数:
bash
ini 体验AI代码助手 代码解读复制代码java -Djasypt.encryptor.password=your-secret-key -jar your-application.jar
下面是一个工具类,可用于生成加密值:
java
ini 体验AI代码助手 代码解读复制代码import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;
public class JasyptUtils {
public static void main(String[] args) {
// 加密密钥,实际使用时可通过环境变量或其他安全方式获取
String password = "your-secret-key";
String plainText = "需要加密的内容";
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
EnvironmentPBEConfig config = new EnvironmentPBEConfig();
config.setAlgorithm("PBEWithMD5AndDES");
config.setPassword(password);
encryptor.setConfig(config);
String encryptedText = encryptor.encrypt(plainText);
String decryptedText = encryptor.decrypt(encryptedText);
System.out.println("原始文本: " + plainText);
System.out.println("加密后: ENC(" + encryptedText + ")");
System.out.println("解密后: " + decryptedText);
}
}
在配置文件里按照如下格式使用加密值:
properties
ini 体验AI代码助手 代码解读复制代码# 数据库配置示例
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=ENC(加密后的用户名)
spring.datasource.password=ENC(加密后的密码)
启动应用程序时,要确保已经正确设置了加密密钥。Jasypt 会在应用启动时自动对加密值进行解密。
PBEWITHHMACSHA512ANDAES_256
。
通过上述步骤,你就能在 Spring Boot 项目中安全地使用 Jasypt 对配置信息进行加密了。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。