激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java使用Hutool實(shí)現(xiàn)AES、DES加密解密的方法

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

2020-12-12 16:40路小磊 Java教程

本篇文章主要介紹了Java使用Hutool實(shí)現(xiàn)AES、DES加密解密的方法,具有一定的參考價(jià)值,有興趣的可以了解一下

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

介紹

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

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

引入Hutool

?
1
2
3
4
5
<dependency>
  <groupId>com.xiaoleilu</groupId>
  <artifactId>hutool-all</artifactId>
  <version>3.0.9</version>
</dependency>

使用

AES加密解密

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String content = "test中文";
 
//隨機(jī)生成密鑰
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基本一致

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
String content = "test中文";
 
//隨機(jī)生成密鑰
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中針對(duì)JDK支持的所有對(duì)稱加密算法做了封裝,封裝為SymmetricCrypto類,AES和DES兩個(gè)類是此類的簡(jiǎn)化表示。通過(guò)實(shí)例化這個(gè)類傳入相應(yīng)的算法枚舉即可使用相同方法加密解密字符串或?qū)ο蟆?/p>

Hutool支持的對(duì)稱加密算法枚舉有:

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

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

對(duì)稱加密對(duì)象的使用也非常簡(jiǎn)單:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String content = "test中文";
 
//隨機(jī)生成密鑰
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);

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://my.oschina.net/looly/blog/1504160

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91看片王| 九色com| 激情综合婷婷久久 | 啪啪激情 | 国产精品视频在线观看免费 | 免费一区二区三区 | 久久精品亚洲国产奇米99 | 久久久久久久久久亚洲精品 | 伊人一二三四区 | 日本中文不卡视频 | 久久久www成人免费毛片 | 播色网电影网 | 国产精品久久久久久久久岛 | 55夜色66夜色国产精品视频 | 91不雅视频 | 国产午夜精品视频免费不卡69堂 | 亚洲一区二区三区日本久久九 | 精品一区二区免费视频视频 | 国产乱一区二区三区视频 | 青青国产在线视频 | 一道本不卡一区 | 日韩午夜一区二区三区 | 精品久久久久久综合日本 | 毛片在线视频观看 | 把娇妻调教成暴露狂 | 青青草成人影视 | 国产视频第一区 | 天天草夜夜 | 成人三级电影在线 | 欧美一及 | 国产大片中文字幕在线观看 | 日韩中文一区 | 99热1 | 欧美电影在线观看 | 视频www| 日韩激情一区二区三区 | 亚洲精品一区二区三区在线看 | 国产精选久久 | 一区在线看 | 欧美激情精品久久久久久久久久 | 成人免费观看49www在线观看 |