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

Java使用Hutool實現(xiàn)AES、DES加密解密的方法

 更新時間:2017年08月08日 15:47:12   作者:路小磊  
本篇文章主要介紹了Java使用Hutool實現(xiàn)AES、DES加密解密的方法,具有一定的參考價值,有興趣的可以了解一下

在Java世界中,AES、DES加密解密需要使用Cipher對象構(gòu)建加密解密系統(tǒng),Hutool中對這一對象做再包裝,簡化了加密解密過程。

介紹

AES和DES同屬對稱加密算法,數(shù)據(jù)發(fā)信方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復(fù)雜的加密密文發(fā)送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進(jìn)行解密,才能使其恢復(fù)成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發(fā)收信雙方都使用這個密鑰對數(shù)據(jù)進(jìn)行加密和解密,這就要求解密方事先必須知道加密密鑰。

在Java世界中,AES、DES加密解密需要使用Cipher對象構(gòu)建加密解密系統(tǒng),Hutool中對這一對象做再包裝,簡化了加密解密過程。

引入Hutool

<dependency>
  <groupId>com.xiaoleilu</groupId>
  <artifactId>hutool-all</artifactId>
  <version>3.0.9</version>
</dependency>

使用

AES加密解密

String content = "test中文";

//隨機生成密鑰
byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();

//構(gòu)建
AES aes = SecureUtil.aes(key);

//加密
byte[] encrypt = aes.encrypt(content);
//解密
byte[] decrypt = aes.decrypt(encrypt);

//加密為16進(jìn)制表示
String encryptHex = des.encryptHex(content);
//解密為原字符串
String decryptStr = des.decryptStr(encryptHex);

DES加密解密

DES的使用方式與AES基本一致

String content = "test中文";

//隨機生成密鑰
byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.DES.getValue()).getEncoded();

//構(gòu)建
DES des = SecureUtil.des(key);

//加密解密
byte[] encrypt = des.encrypt(content);
byte[] decrypt = des.decrypt(encrypt);

//加密為16進(jìn)制,解密為原字符串
String encryptHex = des.encryptHex(content);
String decryptStr = des.decryptStr(encryptHex);

更多

Hutool中針對JDK支持的所有對稱加密算法做了封裝,封裝為SymmetricCrypto類,AES和DES兩個類是此類的簡化表示。通過實例化這個類傳入相應(yīng)的算法枚舉即可使用相同方法加密解密字符串或?qū)ο蟆?/p>

Hutool支持的對稱加密算法枚舉有:

  1. AES
  2. ARCFOUR
  3. Blowfish
  4. DES
  5. DESede
  6. RC2
  7. PBEWithMD5AndDES
  8. PBEWithSHA1AndDESede
  9. PBEWithSHA1AndRC2_40

這些枚舉全部在SymmetricAlgorithm中被列舉

對稱加密對象的使用也非常簡單:

String content = "test中文";

//隨機生成密鑰
byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();

//構(gòu)建
SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key);

//加密
byte[] encrypt = aes.encrypt(content);
//解密
byte[] decrypt = aes.decrypt(encrypt);

//加密為16進(jìn)制表示
String encryptHex = aes.encryptHex(content);
//解密為字符串
String decryptStr = aes.decryptStr(encryptHex);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java Socket編程(二) Java面向連接的類

    Java Socket編程(二) Java面向連接的類

    Java Socket編程(二) Java面向連接的類...
    2006-12-12
  • 導(dǎo)入renren-fast出現(xiàn)問題以及解決方案

    導(dǎo)入renren-fast出現(xiàn)問題以及解決方案

    文章介紹了在導(dǎo)入renren-fast項目時遇到的maven繼承parent問題,并提供了解決方案,即在pom文件中添加``標(biāo)簽,此外,還詳細(xì)解釋了Maven的``標(biāo)簽的作用以及MAVEN構(gòu)建jar包時的查找順序
    2024-11-11
  • Java中ThreadLocal的使用

    Java中ThreadLocal的使用

    這篇文章主要介紹了Java中ThreadLocal的使用,靜態(tài)內(nèi)部類的加載是在程序中調(diào)用靜態(tài)內(nèi)部類的時候加載的,和外部類的加載沒有必然關(guān)系, 但是在加載靜態(tài)內(nèi)部類的時候 發(fā)現(xiàn)外部類還沒有加載,那么就會先加載外部類 ,加載完外部類之后,再加載靜態(tài)內(nèi)部類,需要的朋友可以參考下
    2023-09-09
  • Java輸出數(shù)組的3種方法

    Java輸出數(shù)組的3種方法

    這篇文章主要給大家介紹了關(guān)于Java輸出數(shù)組的3種方法,對于初學(xué)者來說,數(shù)組的輸入輸出是一個麻煩的問題,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • spring啟動加載程序的幾種方法介紹

    spring啟動加載程序的幾種方法介紹

    本篇文章主要介紹了spring啟動加載程序的幾種方法介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java線程中的關(guān)鍵字和方法示例詳解

    Java線程中的關(guān)鍵字和方法示例詳解

    這篇文章主要介紹了Java有關(guān)線程中的關(guān)鍵字和方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Java字符編碼簡介_動力節(jié)點Java學(xué)院整理

    Java字符編碼簡介_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了Java字符編碼簡介,本文主要包括以下幾個方面:編碼基本知識,Java,系統(tǒng)軟件,url,工具軟件等,感興趣的朋友一起看看吧
    2017-08-08
  • Java Spring攔截器案例詳解

    Java Spring攔截器案例詳解

    這篇文章主要介紹了Java Spring攔截器案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Spring AOP的幾種實現(xiàn)方式總結(jié)

    Spring AOP的幾種實現(xiàn)方式總結(jié)

    本篇文章主要介紹了Spring AOP的幾種實現(xiàn)方式總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • ReentrantLock源碼詳解--公平鎖、非公平鎖

    ReentrantLock源碼詳解--公平鎖、非公平鎖

    ReentrantLock重入鎖,是實現(xiàn)Lock接口的一個類,也是在實際編程中使用頻率很高的一個鎖,表示能夠?qū)蚕碣Y源能夠重復(fù)加鎖,即當(dāng)前線程獲取該鎖再次獲取不會被阻塞。下面我們來深入了解一下它吧
    2019-06-06

最新評論