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

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

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

 一、背景說明

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

jasypt默認使用StringEncryptor來進行加解密,也可以自定義自己的加解密類來替換它 。

二、Jasypt介紹 

2.1 Jasypt是什么?

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

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

使用Jasypt對密碼進行加解密可以保證密碼的安全性。

2.2 Jasypt的功能特性

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

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

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

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

3.1 添加Jasypt依賴項

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

3.2 配置加密和解密密鑰

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

jasypt.encryptor.password=mySecretKey

3.3 在應用程序中使用加密和解密功能

在應用程序中使用Jasypt加密和解密密碼非常簡單。

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

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

例如:

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

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

    /**
     * 對數(shù)據(jù)庫進行解密
     *
     * @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       #加密算法,不配置使用默認的
    password: your_secret_password    #加密秘鑰

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

@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)

總結 

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

相關文章

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

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

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

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

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

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

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

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

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

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

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

    詳解JAVA 時間處理相關類

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

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

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

    帶你重新認識MyBatis的foreach

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

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

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

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

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

最新評論

岚皋县| 焉耆| 四会市| 南靖县| 太康县| 确山县| 中牟县| 来宾市| 乌苏市| 边坝县| 右玉县| 临洮县| 收藏| 甘泉县| 达尔| 高要市| 黄山市| 嘉义县| 两当县| 济南市| 波密县| 石屏县| 苏州市| 长宁县| 盘山县| 甘孜县| 东光县| 确山县| 沾益县| 榆林市| 长葛市| 家居| 淮北市| 秦安县| 上饶市| 永平县| 曲周县| 寿阳县| 涞水县| 铁岭市| 正定县|