亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

 一、背景說(shuō)明

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

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

二、Jasypt介紹 

2.1 Jasypt是什么?

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

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

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

2.2 Jasypt的功能特性

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

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

  • 在Spring Boot中使用Jasypt加密和解密敏感數(shù)據(jù)非常簡(jiǎn)單。
  • 您只需要在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加密和解密密碼非常簡(jiǎn)單。

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

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

例如:

/**
     * 對(duì)數(shù)據(jù)庫(kù)進(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");                        // 加密的密鑰,隨便自己填寫,很重要千萬(wàn)不要告訴別人
        standardPBEStringEncryptor.setConfig(config);
        String encryptedText = standardPBEStringEncryptor.encrypt(passWord);
        return encryptedText;
    }

    /**
     * 對(duì)數(shù)據(jù)庫(kù)進(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)目啟動(dò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加密庫(kù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)加解密的文章就介紹到這了,更多相關(guān)springboot數(shù)據(jù)庫(kù)加解密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 并發(fā)編程學(xué)習(xí)筆記之核心理論基礎(chǔ)

    Java 并發(fā)編程學(xué)習(xí)筆記之核心理論基礎(chǔ)

    編寫優(yōu)質(zhì)的并發(fā)代碼是一件難度極高的事情。Java語(yǔ)言從第一版本開始內(nèi)置了對(duì)多線程的支持,這一點(diǎn)在當(dāng)年是非常了不起的,但是當(dāng)我們對(duì)并發(fā)編程有了更深刻的認(rèn)識(shí)和更多的實(shí)踐后,實(shí)現(xiàn)并發(fā)編程就有了更多的方案和更好的選擇。本文是對(duì)并發(fā)編程的核心理論做了下小結(jié)
    2016-05-05
  • 在Java中避免NullPointerException的解決方案

    在Java中避免NullPointerException的解決方案

    這篇文章主要介紹了在Java中避免NullPointerException的解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 淺談在eclipse中如何修改svn的用戶名和密碼

    淺談在eclipse中如何修改svn的用戶名和密碼

    這篇文章主要介紹了在eclipse中如何修改svn的用戶名和密碼的方法,在eclipse中經(jīng)常用svn進(jìn)行代碼版本控制,提交或更新代碼的時(shí)候需要我們輸入用戶名和密碼。對(duì)此感興趣的話可以來(lái)了解一下
    2020-07-07
  • spring中自動(dòng)注入注解的實(shí)現(xiàn)方式

    spring中自動(dòng)注入注解的實(shí)現(xiàn)方式

    在Spring框架中,AutowiredAnnotationBeanPostProcessor負(fù)責(zé)處理@Autowired和@Value注解,實(shí)現(xiàn)依賴注入,首先通過TypeMappedAnnotations獲取注解,并根據(jù)注解屬性構(gòu)建InjectionMetadata,存入緩存
    2024-09-09
  • RocketMQ生產(chǎn)者調(diào)用start發(fā)送消息原理示例

    RocketMQ生產(chǎn)者調(diào)用start發(fā)送消息原理示例

    這篇文章主要為大家介紹了RocketMQ生產(chǎn)者調(diào)用start發(fā)送消息原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • SpringMVC如何把后臺(tái)文件打印到前臺(tái)

    SpringMVC如何把后臺(tái)文件打印到前臺(tái)

    這篇文章主要介紹了SpringMVC如何把后臺(tái)文件打印到前臺(tái),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • jvm字符串常量池在什么內(nèi)存區(qū)域問題解析

    jvm字符串常量池在什么內(nèi)存區(qū)域問題解析

    這篇文章主要介紹了jvm字符串常量池在什么內(nèi)存區(qū)域的問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • SpringBoot?屬性配置中獲取值的方式

    SpringBoot?屬性配置中獲取值的方式

    這篇文章主要介紹了SpringBoot?屬性配置中獲取值的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Jenkins安裝以及郵件配置詳解

    Jenkins安裝以及郵件配置詳解

    這篇文章主要介紹了Jenkins安裝以及郵件配置相關(guān)問題,并通過圖文給大家做了詳細(xì)講解步驟,需要的朋友參考下吧。
    2017-12-12
  • springboot學(xué)習(xí)之Thymeleaf模板引擎及原理介紹

    springboot學(xué)習(xí)之Thymeleaf模板引擎及原理介紹

    本文主要介紹一下SpringBoot給我們推薦的Thymeleaf模板引擎,這模板引擎呢,是一個(gè)高級(jí)語(yǔ)言的模板引擎,他的這個(gè)語(yǔ)法更簡(jiǎn)單而且功能更強(qiáng)大,對(duì)springboot?Thymeleaf模板引擎相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-02-02

最新評(píng)論