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

詳解如何利用jasypt實現(xiàn)配置文件加密

 更新時間:2022年07月05日 14:00:02   作者:步爾斯特  
Jasypt?(Java?Simplified?Encryption)?是一個?java?庫,它允許開發(fā)人員以最小的成本將基本的加密功能添加到項目中,而無需深入了解密碼學(xué)的工作原理。本文將利用jasypt實現(xiàn)配置文件加密,感興趣的可以學(xué)習(xí)一下

Jasypt (Java Simplified Encryption) 是一個 java 庫,它允許開發(fā)人員以最小的成本將基本的加密功能添加到項目中,而無需深入了解密碼學(xué)的工作原理。

引入依賴

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

生效

如果是為spring boot項目的配置文件加密,則無需額外配置,啟動類上的@SpringBootApplication自動會將其注入程序,使其生效。

作用域

指定配置文件的作用域,其他配置文件不受jasypt影響

@Configuration
@EncryptablePropertySources({
    @EncryptablePropertySource("classpath:sentinel-1.properties"),                          
    @EncryptablePropertySource("classpath:sentinel-2.properties")
    })

應(yīng)用

工具類

import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;

/**
 * @author issavior
 */
public class JasyptUtil {
    /**
     * org.jasypt.encryption.StringEncryptor對象
     */
    private static StringEncryptor stringEncryptor = null;

    public static StringEncryptor getInstance(String secretKey) throws Exception {
        if (secretKey == null || secretKey.trim().equals("")) {
            System.out.println("秘鑰不能為空!");
            throw new Exception("org.jasypt.encryption.StringEncryptor秘鑰不能為空!");
        }
        if (stringEncryptor == null) {
            PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
            SimpleStringPBEConfig config = new SimpleStringPBEConfig();
            // 這個秘鑰必須是我們自己定義
            config.setPassword(secretKey);
            config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
            config.setKeyObtentionIterations("1000");
            config.setPoolSize("1");
            config.setProviderName("SunJCE");
            config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
            config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
            config.setStringOutputType("base64");
            encryptor.setConfig(config);

            stringEncryptor = encryptor;
        }
        return stringEncryptor;
    }

    public static void main(final String[] args) {

        // 秘鑰字符串
        String secretKey = "123!@#";

        // 待加密的明文密碼
        String pass = "123456";
        try {
            StringEncryptor stringEncryptor = JasyptUtil.getInstance(secretKey);
            String encryptPass = stringEncryptor.encrypt(pass);
            System.out.println("【" + pass + "】被加密成【" + encryptPass + "】");

            String clearPass = stringEncryptor.decrypt(encryptPass);
            System.out.println("【" + encryptPass + "】被解密成【" + clearPass + "】");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

配置

jasypt:
  encryptor:
    password: 123!@#
my:
  # 必須用ENC()包起來,這樣jasypt才能識別出來這個密碼需要解密再傳給應(yīng)用程序
  msg: ENC(PwyGulNOC9YERAC9A6zpH8Da1tn50dtgJ1XBqygkdNoBTkjmENd+F5yJJMp4sthf)

屬性一覽

進(jìn)階

其內(nèi)部屬性都是可以重寫的,包括ENC()等。

當(dāng)然了,你的鹽和密碼一定要分開存儲,也就是說,加密后的密碼配置在配置文件中,加密的鹽可以放在啟動參數(shù)上。

到此這篇關(guān)于詳解如何利用jasypt實現(xiàn)配置文件加密的文章就介紹到這了,更多相關(guān)jasypt配置文件加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳

相關(guān)文章

  • spring容器初始化遇到的死鎖問題解決

    spring容器初始化遇到的死鎖問題解決

    這篇文章主要給大家介紹了關(guān)于spring容器初始化時候遇到的死鎖問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 利用Java實現(xiàn)圖片馬賽克效果

    利用Java實現(xiàn)圖片馬賽克效果

    馬賽克效果是一種常見的圖像處理技術(shù),通過將圖像劃分為多個小塊并對每個小塊進(jìn)行平均色處理,模擬馬賽克的效果,在本項目中,我們將使用Java的Swing庫和圖像處理技術(shù)來實現(xiàn)圖片的馬賽克特效,需要的朋友可以參考下
    2025-02-02
  • 詳解SpringBoot注入數(shù)據(jù)的方式

    詳解SpringBoot注入數(shù)據(jù)的方式

    這篇文章主要介紹了詳解SpringBoot注入數(shù)據(jù)的方式,詳細(xì)的介紹了幾種注入方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • springcloud gateway網(wǎng)關(guān)服務(wù)啟動報錯的解決

    springcloud gateway網(wǎng)關(guān)服務(wù)啟動報錯的解決

    這篇文章主要介紹了springcloud gateway網(wǎng)關(guān)服務(wù)啟動報錯的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 深入淺析Java Object Serialization與 Hadoop 序列化

    深入淺析Java Object Serialization與 Hadoop 序列化

    序列化是指將結(jié)構(gòu)化對象轉(zhuǎn)化為字節(jié)流以便在網(wǎng)絡(luò)上傳輸或者寫到磁盤永久存儲的過程。下面通過本文給大家分享Java Object Serialization與 Hadoop 序列化,需要的朋友可以參考下
    2017-06-06
  • Java使用EasyExcel實現(xiàn)對excel文件的讀寫方式

    Java使用EasyExcel實現(xiàn)對excel文件的讀寫方式

    這篇文章主要介紹了Java使用EasyExcel實現(xiàn)對excel文件的讀寫方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Rabbitmq消息推送功能實現(xiàn)示例

    Rabbitmq消息推送功能實現(xiàn)示例

    rabbitMQ為異步消息處理提出了一個很好的解決方案,它是一個非常好用的消息中間件。主要解決當(dāng)生產(chǎn)者大量產(chǎn)生數(shù)據(jù)時,消費者無法快速消費的問題。這個時候需要一個中間層,保存這個數(shù)據(jù),rabbitMQ是一個很好的解決方案
    2022-12-12
  • Java中異常打印輸出的常見方法總結(jié)

    Java中異常打印輸出的常見方法總結(jié)

    Java異常是在Java應(yīng)用中的警報器,下面這篇文章主要給大家介紹了關(guān)于Java中異常打印輸出的常見方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • SpringBoot中使用Session共享實現(xiàn)分布式部署的示例代碼

    SpringBoot中使用Session共享實現(xiàn)分布式部署的示例代碼

    這篇文章主要介紹了SpringBoot中使用Session共享實現(xiàn)分布式部署的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java?將PDF轉(zhuǎn)為HTML時保存到流的方法和步驟

    Java?將PDF轉(zhuǎn)為HTML時保存到流的方法和步驟

    本文介紹如何通過Java后端程序代碼將PDF文件轉(zhuǎn)為HTML,并將轉(zhuǎn)換后的HTML文件保存到流,下面是實現(xiàn)轉(zhuǎn)換的方法和步驟,感興趣的朋友一起看看吧
    2022-01-01

最新評論

陈巴尔虎旗| 辛集市| 隆昌县| 海南省| 司法| 永善县| 焦作市| 阿拉善右旗| 富源县| 通榆县| 阳东县| 华宁县| 新丰县| 正蓝旗| 嘉荫县| 南川市| 古蔺县| 陕西省| 尼木县| 昌吉市| 黄骅市| 武乡县| 高密市| 贵定县| 宝兴县| 彭州市| 秭归县| 广宁县| 和硕县| 寿光市| 苍南县| 来凤县| 巴林右旗| 双流县| 柯坪县| 平乡县| 龙南县| 安阳县| 侯马市| 利津县| 望奎县|