jasypt 对 properties敏感信息加密

本文介绍如何使用Jasypt-spring-boot-starter在Spring Boot项目中加密数据库密码,通过在pom.xml中添加依赖并设置加密密钥,可以安全地在properties或yml文件中存储加密后的密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果数据库的密码需要加密 不让其他人知道 

pom加入

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

 
public static void main(String[] args) {
    BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
 //加密所需的秘钥,根据这个秘钥加密,解密
 textEncryptor.setPassword("kkklll");
 //要加密的数据(数据库的用户名或密码)
 String password = textEncryptor.encrypt("123456");
 System.out.println("username:"+password);
}

 

加密之后的数据 6ascNUy5u+mmp46njqWpGw== 

把这个数据用这个包裹 ENC(6ascNUy5u+mmp46njqWpGw==)  如下图,然后放入 properties 或 yml 中,这样就会在项目启动的时候自动解密

秘钥需要放到properties中或yml中

jasypt:

  encryptor:
    password: kkklll

建议放到jar 启动参数里,不要暴露在 yml 中

<think>首先,用户的问题是:"application.properties敏感信息加密"。我需要用中文回答这个问题,并在回答后提出3-5个相关问题。问题必须以"§§相关问题§§"开头,然后列出问题,每个问题用数字点号(如1. ···)表示。 用户的问题是关于在application.properties文件中加密敏感信息的。application.properties通常用于Spring Boot应用程序,存储配置信息如数据库密码、API密钥等。我需要解释如何加密这些敏感信息。 关键点: - **为什么需要加密?**:保护敏感数据不被泄露。 - **如何加密?**:在Spring Boot中,可以使用Spring Cloud Config Server或Jasypt等工具。 - **步骤**:简要描述使用Jasypt的步骤,因为它很常见。 回答结构: 1. **介绍**:解释敏感信息加密的重要性。 2. **方法**:描述使用Jasypt或其他工具的步骤。 3. **示例**:提供一个简单的代码示例或配置示例。 4. **结束**:确保回答完整。 然后,提出3-5个相关问题。相关问题必须基于用户的问题和我的回答。例如: - 如何集成Jasypt到Spring Boot项目? - 加密后如何解密? - 其他加密工具? - 最佳实践? 最后,严格遵守格式:回答后,第一行必须是"§§相关问题§§",然后列出1. 2. 3. 等。 我的回答: - **回答内容**: - 解释在application.properties加密敏感信息的重要性。 - 描述使用Jasypt的步骤: 1. 添加Jasypt依赖到项目中。 2. 生成一个加密密钥。 3. 使用Jasypt加密敏感值。 4. 在application.properties中使用加密后的值,格式如`ENC(encrypted_value)`。 5. 配置Jasypt的密钥在环境变量或启动参数中。 - 提供一个简单的示例代码或配置。 - 使用中文。 - **相关问题**: 1. 如何生成Jasypt加密密钥? 2. 在Spring Boot中如何配置Jasypt以解密属性? 3. 除了Jasypt,还有哪些工具可以用于敏感信息加密? 4. 如何确保加密密钥的安全性? 5. 加密敏感信息后,如何在不同环境中管理配置? 确保相关问题数量在3-5个。 完整回答格式: - 回答主体。 - "§§相关问题§§" - 1. ... - 2. ... - 3. ...</think>在Spring Boot应用中,`application.properties`文件常用于存储配置信息,但其中包含的敏感数据(如数据库密码、API密钥)容易被泄露。因此,对这些信息进行加密至关重要。常见方法是使用加密库如Jasypt(Java Simplified Encryption),它可以无缝集成到Spring Boot项目中。以下是基本步骤: 1. **添加依赖**:在项目的`pom.xml`(Maven)或`build.gradle`(Gradle)中添加Jasypt依赖。 - Maven示例: ```xml <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.5</version> </dependency> ``` 2. **生成加密密钥**:使用Jasypt命令行工具或Java代码生成一个密钥(例如,密钥为`mySecretKey`),并确保将其安全存储(如环境变量或启动参数)。 3. **加密敏感值**:使用Jasypt工具加密原始值。例如,加密密码`mypassword`: - 命令行:`java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="mypassword" password="mySecretKey" algorithm="PBEWithMD5AndDES"` - 输出类似`ENC(encryptedString)`。 4. **更新配置文件**:在`application.properties`中,用`ENC(encryptedString)`替换原始值。例如: ```properties db.password=ENC(AQEAzQoFcT...) ``` 5. **配置解密密钥**:在应用启动时,通过环境变量或命令行参数提供密钥,如`-Djasypt.encryptor.password=mySecretKey`。 注意事项: - **安全性**:密钥必须保密,避免硬编码在代码中。推荐使用环境变量或云服务(如AWS KMS)。 - **其他工具**:如果使用Spring Cloud Config,可以结合Vault或Consul进行更高级的加密管理。 - **测试**:确保在本地和测试环境验证解密功能。 通过这种方式,敏感信息在配置文件中以加密形式存储,运行时自动解密,提升应用安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值