中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

21、Jasypt-SpringBoot配(pei)置文件信(xin)息加密(mi)

Jasypt(Java Simplified Encryption)是(shi)一個輕(qing)量級的Java加密(mi)庫(ku),旨(zhi)在(zai)簡(jian)化加密(mi)操作,使(shi)Java開(kai)發(fa)者能夠在(zai)應用程序中(zhong)輕(qing)松(song)地實現數據(ju)加密(mi)和解密(mi)。它支持(chi)多種常(chang)見的加密(mi)算(suan)法,并提供了易于使(shi)用的 API 和加密(mi)容器,幫助開(kai)發(fa)者保護敏感信息(如密(mi)碼、密(mi)鑰、API 密(mi)鑰、數據(ju)庫(ku)密(mi)碼等)。

最常見(jian)的加密算法包括:

1、PBEWithMD5AndDES:基于密(mi)碼短語的(de)加(jia)密(mi)(使用 MD5 和 DES 算法)。

2、AES (Advanced Encryption Standard):一種對稱加密(mi)(mi)算法,通(tong)常用(yong)于較(jiao)強的加密(mi)(mi)需求。

3、RSA:非(fei)對(dui)稱加(jia)密算(suan)法,用(yong)于公共(gong)密鑰(yao)加(jia)密。

4、PBKDF2:一(yi)種(zhong)基(ji)于(yu)密(mi)碼(ma)的(de)密(mi)鑰派(pai)生函數(shu),用(yong)于(yu)增強密(mi)碼(ma)強度(du)。

 

Jasypt-SpringBoot的基本用法:

1、POM依賴:

<!-- 加解密依賴-->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.5</version>
</dependency>

2、YML配置:

# 加密配置
jasypt:
  encryptor:
    # 指定加密密鑰,生產環境建議放到啟動參數
    password: your-secret
    # 指定解密算法,需要和加密時使用的算法一致
    algorithm: PBEWithMD5AndDES
    # 指定initialization vector類型
    iv-generator-classname: org.jasypt.iv.NoIvGenerator

3、自定義加解密工具類:

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.springframework.util.ObjectUtils;

/**
 * 加(jia)解密工具(ju)類
 */
public class EncrypDecryptUtil {

    /**
     * 加(jia)密(mi)
     *
     * @param password 加(jia)密(mi)時使(shi)用的密(mi)碼
     * @param value    需要加(jia)密(mi)的值
     * @return
     */
    public static String encypt(String password, String value) {
        if(ObjectUtils.isEmpty(value)){
            return null;
        }
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
        encryptor.setPassword(password);
        return encryptor.encrypt(value);
    }

    /**
     * 解密(mi)
     *
     * @param password 解密(mi)時使(shi)用的(de)密(mi)碼
     * @param value    需要解密(mi)的(de)值
     * @return
     */
    public static String decypt(String password, String value) {
        if(ObjectUtils.isEmpty(value)){
            return null;
        }
        StandardPBEStringEncryptor decryptor = new StandardPBEStringEncryptor();
        decryptor.setPassword(password);
        return decryptor.decrypt(value);
    }

    public static void main(String[] args) {
        // "your-secret": YML中配置
        //加密
        System.out.println(EncrypDecryptUtil.encypt("your-secret", "root"));
        System.out.println(EncrypDecryptUtil.encypt("your-secret", "root"));
        //解密(mi)
        System.out.println(EncrypDecryptUtil.decypt("your-secret", "7SZVFKSF09DDdmLwM8pU9dGKw=="));

    }

}

4、相關使用:

ENC(密(mi)(mi)文):用于標記加密(mi)(mi)數據,其中(zhong)括(kuo)號中(zhong)的部分是加密(mi)(mi)后的內容(rong)

 

posted on 2024-12-15 23:56  愛文(Iven)  閱讀(587)  評論(0)    收藏  舉報

導航