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

springboot使用jasypt加密庫實(shí)現(xiàn)數(shù)據(jù)庫加解密示例代碼

 更新時(shí)間:2024年04月24日 11:37:23   作者:把魚入護(hù)  
這篇文章主要給大家介紹了關(guān)于springboot使用jasypt加密庫實(shí)現(xiàn)數(shù)據(jù)庫加解密的相關(guān)資料,Jasypt是一個(gè)用于配置文件加密的Java庫,它可以用來加密和解密配置文件中的敏感信息,如數(shù)據(jù)庫密碼、API?密鑰等,需要的朋友可以參考下

 一、背景說明

在服務(wù)中不可避免的需要使用到一些秘鑰(數(shù)據(jù)庫、redis等)開發(fā)和測試環(huán)境還好,但生產(chǎn)如果采用明文配置將會有安全問題,jasypt是一個(gè)通用的加解密庫,可以使用它。

jasypt默認(rèn)使用StringEncryptor來進(jìn)行加解密,也可以自定義自己的加解密類來替換它 。

二、Jasypt介紹 

2.1 Jasypt是什么?

Jasypt是一個(gè)Java庫,Java 加密包,用于加密和解密敏感數(shù)據(jù),例如密碼和API密鑰。

它允許開發(fā)者以最小的努力為他/她的項(xiàng)目添加基本的加密功能,而且不需要對密碼學(xué)的工作原理有深刻的了解。

使用Jasypt對密碼進(jìn)行加解密可以保證密碼的安全性。

2.2 Jasypt的功能特性

  • 高安全性、基于標(biāo)準(zhǔn)的加密技術(shù),既可用于單向加密也可用于雙向加密。
  • 加密密碼、文本、數(shù)字、二進(jìn)制文件…與Hibernate的透明集成。
  • 適合集成到基于Spring的應(yīng)用程序中,也可與Spring Security透明地集成。
  • 對應(yīng)用程序的配置(即數(shù)據(jù)源)進(jìn)行加密的綜合能力。
  • 在多處理器/多核系統(tǒng)中具有高性能加密的特殊功能。
  • 開放的API,可與任何JCE供應(yīng)商一起使用。
  • 提供了一組內(nèi)置的加密和解密算法,用于保護(hù)敏感數(shù)據(jù)。
    • 其中包括使用對稱加密算法(如AES和Blowfish)和非對稱加密算法(如RSA)進(jìn)行加密和解密。

三、示例1:在Spring Boot中使用Jasypt加密和解密敏感數(shù)據(jù)

  • 在Spring Boot中使用Jasypt加密和解密敏感數(shù)據(jù)非常簡單。
  • 您只需要在Spring Boot應(yīng)用程序中添加Jasypt依賴項(xiàng),并在應(yīng)用程序配置文件中指定加密和解密密鑰即可。

以下是在Spring Boot應(yīng)用程序中使用Jasypt加密和解密密碼的示例代碼:

3.1 添加Jasypt依賴項(xiàng)

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

3.2 配置加密和解密密鑰

在應(yīng)用程序配置文件(例如application.properties或application.yml)中指定加密和解密密鑰。
例如:

jasypt.encryptor.password=mySecretKey

3.3 在應(yīng)用程序中使用加密和解密功能

在應(yīng)用程序中使用Jasypt加密和解密密碼非常簡單。

您只需要使用@Autowired注釋注入org.jasypt.encryption.StringEncryptor bean,

并使用encrypt和decrypt方法加密和解密密碼。

例如:

/**
     * 對數(shù)據(jù)庫進(jìn)行加密
     *
     * @param passWord
     * @return
     */
    @GetMapping("/encrypt")
    public String jasyptEncrypt(String passWord) {
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();

        config.setAlgorithm("PBEWithMD5AndDES");          // 加密的算法,這個(gè)算法是默認(rèn)的
        config.setPassword("SDHYDZ");                        // 加密的密鑰,隨便自己填寫,很重要千萬不要告訴別人
        standardPBEStringEncryptor.setConfig(config);
        String encryptedText = standardPBEStringEncryptor.encrypt(passWord);
        return encryptedText;
    }

    /**
     * 對數(shù)據(jù)庫進(jìn)行解密
     *
     * @param passWord
     * @return
     */
    @GetMapping("/decrypt")
    public String jasyptDecrypt(String passWord) {

        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        EnvironmentPBEConfig config = new EnvironmentPBEConfig();

        config.setAlgorithm("PBEWithMD5AndDES");
        config.setPassword("SDHYDZ");
        standardPBEStringEncryptor.setConfig(config);
        String plainText = standardPBEStringEncryptor.decrypt(passWord);
        return plainText;
    }

四、示例2:在Spring Boot中使用Jasypt加解密密碼的步驟

以下是在Spring Boot中使用Jasypt加解密密碼的步驟:

4.1 在pom.xml文件中添加依賴

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

4.2 在application.properties或application.yml中配置加密算法和密鑰:

jasypt.encryptor.algorithm=PBEWithMD5AndDES
jasypt.encryptor.password=your_secret_password

或者:

jasypt:
  encryptor:
    algorithm: PBEWithMD5AndDES       #加密算法,不配置使用默認(rèn)的
    password: your_secret_password    #加密秘鑰

 在配置文件中配置秘鑰仍可能存在密碼泄露的可能,因此我將秘鑰放在項(xiàng)目啟動是加載的:

@SpringBootApplication
public class HyErpApplication {

    public static void main(String[] args) throws UnknownHostException {
        System.setProperty("jasypt.encryptor.password",SecHelper.decryptStr("6qNfbL8HgFdyj7IZyysdzTWf"));
        ConfigurableApplicationContext application = SpringApplication.run(HyErpApplication.class, args);
    }
}

4.3 在application.properties或application.yml中使用加密后的密碼:

spring.datasource.password=ENC(encrypted_password)

或者:

spring:
  datasource:
    password: ENC(encrypted_password)

總結(jié) 

到此這篇關(guān)于springboot使用jasypt加密庫實(shí)現(xiàn)數(shù)據(jù)庫加解密的文章就介紹到這了,更多相關(guān)springboot數(shù)據(jù)庫加解密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • idea創(chuàng)建SpringBoot項(xiàng)目時(shí)Type選maven?project和maven?pom有何區(qū)別

    idea創(chuàng)建SpringBoot項(xiàng)目時(shí)Type選maven?project和maven?pom有何區(qū)別

    Maven是一個(gè)Java工程的管理工具,跟其相同功能的工具如Gradle,下面這篇文章主要給大家介紹了關(guān)于idea創(chuàng)建SpringBoot項(xiàng)目時(shí)Type選maven?project和maven?pom有何區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Spring中@Scheduled注解的參數(shù)詳解

    Spring中@Scheduled注解的參數(shù)詳解

    這篇文章主要介紹了Spring中@Scheduled注解的參數(shù)詳解,@Scheduled注解的使用這里不詳細(xì)說明,@Scheduled注解有幾個(gè)參數(shù)需要說明一下,直接對8個(gè)參數(shù)進(jìn)行講解,需要的朋友可以參考下
    2023-11-11
  • Java getParameter()獲取數(shù)據(jù)為空的問題

    Java getParameter()獲取數(shù)據(jù)為空的問題

    這篇文章主要介紹了Java getParameter()獲取數(shù)據(jù)為空的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java來實(shí)現(xiàn)文本轉(zhuǎn)圖片需求示例

    Java來實(shí)現(xiàn)文本轉(zhuǎn)圖片需求示例

    本文主要介紹了Java來實(shí)現(xiàn)文本轉(zhuǎn)圖片需求示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • spring boot打包成可執(zhí)行jar包

    spring boot打包成可執(zhí)行jar包

    本篇文章主要介紹了spring boot打包成可執(zhí)行jar包,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • 詳解JAVA 時(shí)間處理相關(guān)類

    詳解JAVA 時(shí)間處理相關(guān)類

    這篇文章主要介紹了JAVA 時(shí)間處理相關(guān)類的知識,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • mybatis?foreach?屬性及其三種使用情況詳解

    mybatis?foreach?屬性及其三種使用情況詳解

    這篇文章主要介紹了mybatis?foreach?屬性及其三種使用情況詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 帶你重新認(rèn)識MyBatis的foreach

    帶你重新認(rèn)識MyBatis的foreach

    這篇文章主要介紹了重新認(rèn)識MyBatis的foreach,本文提出了一種簡化<foreach>寫法的設(shè)想,更重要的是通過解決空集時(shí)生成的SQL語法問題,更深刻地理解MyBatis的foreach的生成機(jī)制,需要的朋友可以參考下
    2022-11-11
  • java通過ssh連接執(zhí)行shell命令,文件傳輸方式

    java通過ssh連接執(zhí)行shell命令,文件傳輸方式

    這篇文章主要介紹了java通過ssh連接執(zhí)行shell命令,文件傳輸方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • SpringBoot實(shí)現(xiàn)啟動類的存放位置

    SpringBoot實(shí)現(xiàn)啟動類的存放位置

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)啟動類的存放位置,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論

商南县| 类乌齐县| 独山县| 兴安盟| 香港 | 咸阳市| 黎平县| 梅州市| 临猗县| 项城市| 山东省| 广南县| 克拉玛依市| 铜鼓县| 遵义市| 达尔| 固安县| 黄骅市| 尚志市| 南召县| 建水县| 乐山市| 越西县| 贞丰县| 桑植县| 兴城市| 平安县| 通城县| 上栗县| 永泰县| 雅安市| 吉安市| 荃湾区| 福安市| 白银市| 龙陵县| 彭水| 定边县| 谷城县| 沛县| 大安市|