欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nacos配置ENC(...)加密實現(xiàn)方式

 更新時間:2025年09月26日 08:51:36   作者:柴華松  
文章介紹在SpringBoot中使用Jasypt加密敏感配置(如數(shù)據(jù)庫密碼),通過添加依賴、配置密鑰、定義自定義加密器Bean實現(xiàn)加密解密,強(qiáng)調(diào)密鑰安全、日志保密及算法選擇,確保配置信息安全

nacos配置ENC(...)加密方式

如:

spring.datasource.password=ENC(xxxx)

在 Spring Boot 項目中,Jasypt 是一個常用的加密和解密工具,用于安全地管理敏感信息(例如數(shù)據(jù)庫密碼)。

從日志來看,jasypt 初始化了默認(rèn)的加密器 Default String Encryptor,但您想自定義 jasyptStringEncryptor 解密邏輯。

以下是實現(xiàn)步驟:

1.添加依賴

確保在 pom.xml 或 build.gradle 中包含 Jasypt 的依賴:

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.5</version> <!-- 替換為合適版本 -->
</dependency>

2.配置 jasypt 密鑰

在 application.properties 或 application.yml 文件中配置加密密鑰:

jasypt.encryptor.password=your-encryption-password

注意: your-encryption-password 是用于加密和解密的密鑰,建議不要硬編碼,可通過環(huán)境變量注入。

3.定義自定義 jasyptStringEncryptor

您可以在配置類中自定義一個 StringEncryptor Bean:

import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.salt.RandomSaltGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JasyptConfig {

    @Bean(name = "jasyptStringEncryptor")
    public StringEncryptor stringEncryptor() {
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        encryptor.setPoolSize(4); // 設(shè)置線程池大小
        encryptor.setPassword("your-encryption-password"); // 配置密鑰
        encryptor.setAlgorithm("PBEWithMD5AndDES"); // 加密算法
        encryptor.setSaltGenerator(new RandomSaltGenerator());
        return encryptor;
    }
}

4.加密和解密示例

加密:

使用 Jasypt 工具對敏感數(shù)據(jù)加密:

# 示例加密命令
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \
  input="your-secret-password" \
  password="your-encryption-password" \
  algorithm="PBEWithMD5AndDES"

輸出: ENC(your-encrypted-string),將其用于配置文件。

解密:

當(dāng)配置文件中包含加密數(shù)據(jù)(例如數(shù)據(jù)庫密碼)時:

spring.datasource.password=ENC(your-encrypted-string)

jasyptStringEncryptor 會自動解密。

5.驗證日志

啟動項目,日志中應(yīng)該顯示 jasyptStringEncryptor 已被使用:

INFO c.u.jasyptspringboot.encryptor.CustomStringEncryptor - String Encryptor custom Bean found with name ‘jasyptStringEncryptor’.

6.手動調(diào)用解密(可選)

如果需要在代碼中手動解密:

import org.jasypt.encryption.StringEncryptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DecryptionService {
    @Autowired
    private StringEncryptor stringEncryptor;

    public String decrypt(String encryptedText) {
        return stringEncryptor.decrypt(encryptedText);
    }
}

注意事項:

1. 密鑰安全性:不要將密鑰硬編碼到代碼中,建議使用環(huán)境變量或密鑰管理工具。

2. 日志安全性:不要在日志中打印明文數(shù)據(jù)。

3. 加密算法:根據(jù)需求選擇更強(qiáng)的加密算法(如 AES)。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 圖解Java中插入排序算法的原理與實現(xiàn)

    圖解Java中插入排序算法的原理與實現(xiàn)

    插入排序的算法描述是一種簡單直觀的排序算法。它的工作原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)位置并插入。本文將通過圖片詳解插入排序的原理及實現(xiàn),需要的可以參考一下
    2022-08-08
  • SpringBoot讀取yml文件中配置數(shù)組的2種方法

    SpringBoot讀取yml文件中配置數(shù)組的2種方法

    這篇文章主要介紹了SpringBoot讀取yml文件中配置數(shù)組的2種方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中的顯示鎖ReentrantLock使用與原理詳解

    Java中的顯示鎖ReentrantLock使用與原理詳解

    這篇文章主要介紹了Java中的顯示鎖ReentrantLock使用與原理詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • springboot打包jar和war包的教程圖解

    springboot打包jar和war包的教程圖解

    這篇文章主要介紹了springboot打包jar和war包的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Spring Boot 2.4新特性減少95%內(nèi)存占用問題

    Spring Boot 2.4新特性減少95%內(nèi)存占用問題

    這篇文章主要介紹了Spring Boot 2.4新特性減少95%內(nèi)存占用問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • SpringCloud Config統(tǒng)一配置中心問題分析解決與客戶端動態(tài)刷新實現(xiàn)

    SpringCloud Config統(tǒng)一配置中心問題分析解決與客戶端動態(tài)刷新實現(xiàn)

    springcloud config是一個解決分布式系統(tǒng)的配置管理方案。它包含了 client和server兩個部分,server端提供配置文件的存儲、以接口的形式將配置文件的內(nèi)容提供出去,client端通過接口獲取數(shù)據(jù)、并依據(jù)此數(shù)據(jù)初始化自己的應(yīng)用
    2022-10-10
  • Springboot中@Value的使用詳解

    Springboot中@Value的使用詳解

    這篇文章主要介紹了Springboot中@Value的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • SpringMvc中的Bean加載機(jī)制詳解

    SpringMvc中的Bean加載機(jī)制詳解

    這篇文章主要介紹了SpringMvc中的Bean加載機(jī)制詳解,在Spring MVC中,Bean的作用主要是處理應(yīng)用程序的業(yè)務(wù)邏輯和數(shù)據(jù),例如,一個用戶管理應(yīng)用程序的Bean可能包括UserService、UserDao和UserController等,需要的朋友可以參考下
    2023-12-12
  • 使用HttpServletResponse對象獲取請求行信息

    使用HttpServletResponse對象獲取請求行信息

    這篇文章主要介紹了使用HttpServletResponse對象獲取請求行信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • spring注入在有常量的情況下使用@AllArgsConstructor操作

    spring注入在有常量的情況下使用@AllArgsConstructor操作

    這篇文章主要介紹了spring注入在有常量的情況下使用@AllArgsConstructor操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論