Spring Boot yml 配置敏感信息加密

简介: 本文介绍了如何在 Spring Boot 项目中使用 Jasypt 实现配置文件加密,包含添加依赖、配置密钥、生成加密值、在配置中使用加密值及验证步骤,并提供了注意事项,确保敏感信息的安全管理。

在 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 会在应用启动时自动对加密值进行解密。

注意事项

  1. 加密密钥属于敏感信息,不能硬编码在代码或者配置文件中。建议通过环境变量、CI/CD 工具或者 Kubernetes Secret 等安全方式来管理。
  2. 可以根据实际需求调整加密算法,例如使用更安全的PBEWITHHMACSHA512ANDAES_256
  3. 要妥善保管好加密密钥,一旦丢失,将无法对已加密的内容进行解密。

通过上述步骤,你就能在 Spring Boot 项目中安全地使用 Jasypt 对配置信息进行加密了。


转载来源:https://juejin.cn/post/7508641290210230306

相关文章
|
6月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
1207 10
|
8月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
538 3
Jasypt加密数据库配置信息
|
12月前
|
云安全 安全 数据建模
《数字证书:互联网世界的"身份证"与"防盗门"》 ——揭秘网络安全背后的加密江湖
在2023年某深夜,上海陆家嘴金融公司机房遭遇黑客攻击,神秘青铜大门与九大掌门封印的玉牌突现,阻止了入侵。此门象征数字证书,保障网络安全。数字证书如验钞机识别假币,保护用户数据。它通过SSL/TLS加密、CA认证和非对称加密,构建安全通信。证书分为DV、OV、EV三类,分别适合不同场景。忽视证书安全可能导致巨额损失。阿里云提供一站式证书服务,助力企业部署SSL证书,迎接未来量子计算和物联网挑战。
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
253 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
262 10
|
SQL 安全 网络安全
网络安全漏洞、加密技术与安全意识的知识分享
随着互联网的普及,网络安全问题日益严重。本文将介绍网络安全漏洞的概念、类型和防范措施,以及加密技术的原理和应用。同时,强调提高个人和企业的安全意识对于防范网络攻击的重要性。
397 7
|
存储 安全 算法
揭秘网络安全的盾牌与矛:漏洞防护与加密技术的较量
在数字化时代的棋局中,网络安全是每个参与者必须面对的挑战。本文将深入探讨网络安全中的两个关键角色——漏洞与加密技术。通过分析最新的安全漏洞案例,我们揭示网络攻击者如何利用这些漏洞进行破坏。同时,我们将展示加密技术如何成为保护数据不被窃取的强大盾牌。文章还将讨论提升个人和企业的安全意识的重要性,并通过实际的代码示例,展示如何在实践中应用这些知识来加强我们的网络防线。
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。
208 4