hutool-crypto 依賴 Aes加密,解密


環境:springboot 2.4.0

1.添加依賴

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-crypto</artifactId>
    <version>5.5.4</version>
</dependency>

2.初始化Aes對象,四個參數
2.1 Mode 枚舉參數 選擇加密模式
public enum Mode {
    NONE,
//CBC:基於IV的加密方案,該模式作為概率加密方案是安全的,假設隨機IV,實現與隨機比特的不可區分。 
    如果IV僅僅是nonce,則不能實現機密性,也不是如該標准錯誤建議的那樣,在該方案使用的相同密鑰下加密的nonce。 
    Ciphertexts具有很強的可塑性。 沒有選擇的密文攻擊(CCA)安全性。 對於許多填充方法,在存在正確填充的oracle的情況下,機密性將被取消。 
    加密從本質上是連續的低效。 模式的隱私安全屬性被廣泛使用,導致頻繁的誤用。 可以用作CBC-MAC算法的構建塊。 我認為CTR模式沒有重要優勢。
    CBC, 
//CFB:基於IV的加密方案,該模式作為概率加密方案是安全的,假設隨機IV,實現與隨機比特的不可區分。 
    如果IV是可預測的,也不是由在該方案使用的相同密鑰下加密的隨機數制作,如標准錯誤地建議的那樣,則不能實現機密性。 
    Ciphertexts是可塑的。 沒有CCA安全性。 加密從本質上是連續的低效。 方案取決於參數s,1≤s≤n,通常s = 1或s = 8.對於需要一個阻塞調用僅處理s位而言效率低。 
    該模式實現了一個有趣的“自同步”屬性; 在密文中插入或刪除任意數量的s位字符只會暫時中斷正確的解密。
    CFB,
//CTR:基於IV的加密方案,該模式實現了與假設nonce IV的隨機位的不可區分性。 作為基於安全隨機數的方案,該模式還可以用作概率加密方案,具有隨機IV。 
    如果nonce在加密或解密時被重用,則完全失去隱私。 模式的可並行性通常使其在某些設置中比其他機密性模式更快。 用於經過身份驗證的加密方案的重要構建塊。 
    總的來說,通常是實現僅隱私加密的最佳和最現代的方式。
    CTR,
    CTS,
    ECB,
    OFB,
    PCBC;

    private Mode() {
    }
}
默認 Mode.NONE

 


2.2 Padding 枚舉參數
public enum Padding {
    NoPadding,
    ZeroPadding,
    ISO10126Padding,
    OAEPPadding,
    PKCS1Padding,
    PKCS5Padding,
    SSL3Padding;

    private Padding() {
    }
}

 


2.3 key byte[] 隨機值
2.4 iv byte[] 隨機值

3.初始化
Aes aes = new Aes(Mode.CBC,Padding.PKCS5Padding,key,iv);
aes.encrypyHex(data);//加密
aes.decryptStr(dataEncrypt);//解密
 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM