欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot配置文件密碼加密的三種方案

 更新時間:2024年04月18日 08:59:26   作者:SevenBean  
這篇文章主要介紹了SpringBoot配置文件密碼加密的三種方案,文中通過代碼示例給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

配置文件密碼加密的3種方案

一.配置文件添加jasypt

1.pom.xml添加jasypt引用

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

2.在springboot配置文件內(nèi)加入 jasypt配置

jasypt:
  encryptor:
    algorithm: PBEWithMD5AndDES ##鹽
    password: dddda123 #密鑰

二.使用配置類初始加載加解密

1.pom.xml添加jasypt依賴

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

2.編寫配置類加載bean

package com.top.common.config;
import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
*/
/**
 * @author 
 * @date 2023/6/719:41
 * @Package 
 * @description 自動配置加密信息
 *//*

@Configuration
public class EncryptorConfig {
    @Bean("jasyptStringEncryptor")
    public StringEncryptor jasyptStringEncryptor() {
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword("WyYJ5C8l9qWSjkMpP2ilsIRkvhvp9wH4");
        // 注釋部分為配置默認
        config.setAlgorithm("PBEWithMD5AndDES");
//        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);
        return encryptor;
    }
}

三、不在配置文件顯示配置秘鑰

使用Jasypt來加密和解密

1、添加Jasypt依賴

在pom.xml文件中添加Jasypt依賴:

<dependency>
    <groupId>org.jasypt</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

2、獲取加密后的字符串

在線網(wǎng)站:https://new.lxc1314.xyz/

3、在配置文件中使用加密后的密碼

在application.properties或application.yml中使用加密后的密碼,格式為ENC(加密后的密碼)。例如:

spring.datasource.password=ENC(1WqJf1V5n1R4n5v2k3P4q5I7r2Q3u5Q1)

4、在安裝的時候向環(huán)境變量中配置解密密碼和鹽值

export JASYPT_ENCRYPTOR_PASSWORD=mySecretPassword
export JASYPT_ENCRYPTOR_IV_GENERATOR_CLASSNAME=org.jasypt.iv.RandomIvGenerator

5、java 命令啟動時傳入jasypt.encryptor.password 和 jasypt.encryptor.iv-generator-classname

java -jar myapp.jar -Djasypt.encryptor.password=$JASYPT_ENCRYPTOR_PASSWORD -Djasypt.encryptor.iv-generator-classname=org.jasypt.iv.RandomIvGenerator

密碼加密的使用

1.在需要加密的配置文件使用ENC(加密后的密碼)

2.獲取加密后的密碼方法

    private static final String ALGORITHM_INFO = "PBEWithMD5AndDES";

    private static final String PASSWORD_INFO = "WyAh5C8l9qWSGHMpda1lsIRkvhvpyDH1";

    @GetMapping("/encryptPwd")
    public void encryptPwd() {
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        //配置文件中配置如下的算法
        standardPBEStringEncryptor.setAlgorithm(ALGORITHM_INFO);
        //配置文件中配置的password
        standardPBEStringEncryptor.setPassword(PASSWORD_INFO);
        //要加密的文本
        String name = standardPBEStringEncryptor.encrypt("abababa");
        String password = standardPBEStringEncryptor.encrypt("e022f87539fd81f3");
        String redisPassword = standardPBEStringEncryptor.encrypt("gbasedbt123");
        String redisPassword2 = standardPBEStringEncryptor.encrypt("abababa");
        String redisPassword3 = standardPBEStringEncryptor.encrypt("123456");
        String redisPassword4 = standardPBEStringEncryptor.encrypt("6a3d373e077b41b5a1c53f993c4fdc80");
        String oppeer= standardPBEStringEncryptor.encrypt("oppeer");
        String ddlla= standardPBEStringEncryptor.encrypt("ddlla");
        String nacos = standardPBEStringEncryptor.encrypt("nacos");
        //將加密的文本寫到配置文件中
        System.out.println("【abababa】=" + name);
        System.out.println("【e022f87539fd81f3】=" + password);
        System.out.println("【gbasedbt123】=" + redisPassword);
        System.out.println("【abababa】=" + redisPassword2);
        System.out.println("【123456】=" + redisPassword3);
        System.out.println("【6a3d373e077b41b5a1c53f993c4fdc80】=" + redisPassword4);
        System.out.println("【oppeer】=" + oppeer);
        System.out.println("【ddlla】=" + ddlla);
        System.out.println("【nacos】=" + nacos);

        //要解密的文本
       *//* String name2 = standardPBEStringEncryptor.decrypt("3U+OHwCEJvWNCnjV6iVYvMxYYcJTxJpoQchB4/ttEsV5YdHI9jFW8S92KiTI6yLk");
        String password2 = standardPBEStringEncryptor.decrypt("0PbODjzlXKy2a0Ijag3oEFqmvRpUl736GVkh55sY4SmTk5Nl1FzxpETEScFtL47W");
//        String redisPassword2 = standardPBEStringEncryptor.decrypt("ZII7UphhbVuJ8c3oxPUeyw==");
        //解密后的文本
        System.out.println("name2=" + name2);
        System.out.println("password2=" + password2);*//*

}

兩種配置文件密碼加密方案,一種是在配置文件中添加jasypt引用并加入jasypt配置,另一種是使用配置類加載bean進行加解密。加密后的密碼可以在配置文件中使用ENC(加密后的密碼)獲取。其中使用的加密算法是PBEWithMD5AndDES,密鑰為WyAh5C8l9qWSGHMpda1lsIRkvhvpyDH1。可以通過訪問/encryptPwd來獲取加密后的密碼。

到此這篇關(guān)于SpringBoot配置文件密碼加密的三種方案的文章就介紹到這了,更多相關(guān)SpringBoot配置文件密碼加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java優(yōu)雅的關(guān)閉線程池的方法

    Java優(yōu)雅的關(guān)閉線程池的方法

    本文主要介紹了Java如何優(yōu)雅的關(guān)閉線程池,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • SpringBoot?項目瘦身maven/gradle詳解

    SpringBoot?項目瘦身maven/gradle詳解

    這篇文章主要介紹了SpringBoot項目瘦身(maven/gradle),本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • Java 8中default方法能做什么?不能做什么?

    Java 8中default方法能做什么?不能做什么?

    這篇文章主要給大家介紹了關(guān)于Java 8中default方法能做什么?不能做什么?文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • Java 實戰(zhàn)項目之CRM客戶管理系統(tǒng)的實現(xiàn)流程

    Java 實戰(zhàn)項目之CRM客戶管理系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)一個CRM客戶管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • 詳解Spring?MVC優(yōu)雅處理異常的6種方式

    詳解Spring?MVC優(yōu)雅處理異常的6種方式

    在Spring中提供了多種機制來處理控制器拋出的異常,確保應(yīng)用程序在面對各種錯誤情況時能夠優(yōu)雅地響應(yīng),本文我們來詳細分析Spring?MVC中6種優(yōu)雅處理異常的方式,需要的可以參考下
    2024-12-12
  • spring解決循環(huán)依賴

    spring解決循環(huán)依賴

    這篇文章主要介紹了spring如何解決循環(huán)依賴,幫助大家更好的理解和使用spring框架,感興趣的朋友可以了解下
    2020-09-09
  • Spring Boot 中的 CommandLineRunner 原理及使用示例解析

    Spring Boot 中的 CommandLineRunner 原理及使用示例

    CommandLineRunner 是 Spring Boot 提供的一個非常有用的接口,可以幫助你在應(yīng)用程序啟動后執(zhí)行初始化任務(wù),本文通過多個示例詳細介紹了如何在實際項目中使用 CommandLineRunner,感興趣的朋友一起看看吧
    2025-04-04
  • Java干貨知識深入理解內(nèi)部類

    Java干貨知識深入理解內(nèi)部類

    這篇文章主要介紹了Java干貨知識深入理解內(nèi)部類,定義在另一個類或方法中的類就叫做內(nèi)部類,需要的朋友可以參考下
    2019-06-06
  • mybatis-plus批量插入優(yōu)化方式

    mybatis-plus批量插入優(yōu)化方式

    MyBatis-Plus的saveBatch()方法默認是單條插入,通過在JDBC URL添加rewriteBatchedStatements=true參數(shù)啟用批量插入,官方提供的sql注入器可自定義方法,如InsertBatchSomeColumn實現(xiàn)真批量插入,但存在單次插入數(shù)據(jù)量過大問題,可通過分批插入優(yōu)化,避免超出MySQL限制
    2024-09-09
  • Java Servlet請求重定向的方法

    Java Servlet請求重定向的方法

    這篇文章主要介紹了使用Java Servlet請求重定向的方法,幫助大家更好的理解和學(xué)習(xí)Java Servlet的相關(guān)知識,感興趣的朋友可以了解下
    2020-11-11

最新評論