最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2025年09月26日 08:51:36   作者:柴華松  
文章介紹在SpringBoot中使用Jasypt加密敏感配置(如數(shù)據(jù)庫密碼),通過添加依賴、配置密鑰、定義自定義加密器Bean實現(xiàn)加密解密,強調(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ù)需求選擇更強的加密算法(如 AES)。

總結(jié)

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

相關(guān)文章

  • SpringBoot使用@ResponseBody返回圖片的實現(xiàn)

    SpringBoot使用@ResponseBody返回圖片的實現(xiàn)

    這篇文章主要介紹了SpringBoot使用@ResponseBody返回圖片的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 關(guān)于IDEA配置文件字符集的問題

    關(guān)于IDEA配置文件字符集的問題

    這篇文章主要介紹了關(guān)于IDEA配置文件字符集的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Java實現(xiàn)全圖背景水印的示例詳解

    Java實現(xiàn)全圖背景水印的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Java實現(xiàn)全圖背景水印的方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下
    2023-02-02
  • Java?Web開發(fā)中的分頁與參數(shù)校驗舉例詳解

    Java?Web開發(fā)中的分頁與參數(shù)校驗舉例詳解

    這篇文章主要介紹了JavaWeb開發(fā)中的分頁設(shè)計和參數(shù)校驗,分頁設(shè)計通過分頁查詢參數(shù)優(yōu)化查詢性能,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • Java 限制子類訪問的方法分析

    Java 限制子類訪問的方法分析

    這篇文章主要介紹了Java 限制子類訪問的方法,結(jié)合實例形式分析了java類的繼承與訪問相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下
    2019-09-09
  • Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解

    Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解

    本文主要介紹了Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • JAVA 多態(tài) 由淺及深介紹

    JAVA 多態(tài) 由淺及深介紹

    JAVA 多態(tài) 由淺及深介紹,什么是多態(tài)?多態(tài)的詳細(xì)解釋,多態(tài)的好處,多態(tài)的實際運用等
    2013-03-03
  • SpringBoot更改啟動圖標(biāo)實現(xiàn)方式

    SpringBoot更改啟動圖標(biāo)實現(xiàn)方式

    文章介紹了如何在Spring Boot應(yīng)用中修改啟動圖標(biāo),首先,可以使用原始的圖標(biāo)樣式或從指定的URL獲取新的圖標(biāo)樣式,并將其保存為banner.txt文件,在banner.txt文件中,可以配置顏色和版本號等信息,此外,還可以通過配置文件指定自定義的圖標(biāo)路徑,使用文本或圖片格式
    2025-11-11
  • 普通對象使用spring容器中的對象的實現(xiàn)方法

    普通對象使用spring容器中的對象的實現(xiàn)方法

    這篇文章主要介紹了普通對象使用spring容器中的對象的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Java服務(wù)調(diào)用失敗報Service com.oneinfinite.adflow.api.service.TestService未找到的解決方法

    Java服務(wù)調(diào)用失敗報Service com.oneinfinite.adflow.api.service.T

    在Java開發(fā)中,服務(wù)調(diào)用是常見的操作,尤其是在微服務(wù)架構(gòu)中,然而,服務(wù)調(diào)用過程中可能會遇到各種問題,下面我們來看看如何解決Service com.oneinfinite.adflow.api.service.TestService with version 0.0.0 not found的問題吧
    2025-03-03

最新評論

云林县| 桃源县| 襄垣县| 桑日县| 阳山县| 建昌县| 正蓝旗| 贡觉县| 巴彦淖尔市| 江油市| 沧州市| 遂川县| 陆良县| 平泉县| 夏津县| 普兰县| 汝南县| 新源县| 天祝| 中方县| 罗平县| 谢通门县| 循化| 玉门市| 霍林郭勒市| 宜昌市| 临颍县| 南华县| 青海省| 玛纳斯县| 鹿泉市| 轮台县| 甘洛县| 郸城县| 隆化县| 崇左市| 象山县| 龙泉市| 祥云县| 东辽县| 石棉县|