日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

加密算法使用(四):AES的使用

發布時間:2025/3/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 加密算法使用(四):AES的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AES是一種對稱加密方式,比DES更為安全,用一個秘鑰加密數據之后,可以用同一個秘鑰對加密后的數據解密還原,以下是一套以字符串為例子的使用全過程演示,

用到了

commons-codec.jar 1 package testEncrypt; 2 3 import java.security.InvalidKeyException; 4 import java.security.Key; 5 import java.security.NoSuchAlgorithmException; 6 import java.security.SecureRandom; 7 8 import javax.crypto.BadPaddingException; 9 import javax.crypto.Cipher; 10 import javax.crypto.IllegalBlockSizeException; 11 import javax.crypto.KeyGenerator; 12 import javax.crypto.NoSuchPaddingException; 13 import javax.crypto.SecretKey; 14 import javax.crypto.spec.SecretKeySpec; 15 16 import org.apache.commons.codec.binary.Base64; 17 //import sun.misc.BASE64Encoder; 18 public class TestAesEncrypt { 19 20 public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeyException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException { 21 //隨機生成密鑰 22 KeyGenerator keygen = KeyGenerator.getInstance("AES"); 23 //SecureRandom random = new SecureRandom(Base64.decodeBase64("abc")); 24 SecureRandom random = new SecureRandom(); 25 keygen.init(random); 26 Key key = keygen.generateKey(); 27 //獲取秘鑰字符串 28 String key64Str = Base64.encodeBase64String(key.getEncoded()); 29 //要加密的數據 30 String dataStr="da89gh9qj3ebg9babjdslgbuqgb&FTUG^(GB"; 31 System.out.println("要加密的數據:"+dataStr); 32 33 //還原秘鑰字符串到秘鑰byte數組 34 byte[] keyByteArray = Base64.decodeBase64(key64Str); 35 //重新形成秘鑰,SecretKey是Key的子類 36 SecretKey secretKey = new SecretKeySpec(keyByteArray, "AES"); 37 38 //初始化加密組件 39 Cipher cipher = Cipher.getInstance("AES"); 40 cipher.init(Cipher.ENCRYPT_MODE, secretKey); 41 42 //加密后的數據,首先將字符串轉為byte數組,然后加密,為便于保存先轉為base64 43 String encryptedDataStr = Base64.encodeBase64String(cipher.doFinal(dataStr.getBytes())); 44 System.out.println("加密后的數據:"+encryptedDataStr); 45 46 //將加密組件的模式改為解密 47 cipher.init(Cipher.DECRYPT_MODE, secretKey); 48 //和上面的加密相反,先解base64,再解密,最后將byte數組轉為字符串 49 String decodeDataStr = new String(cipher.doFinal(Base64.decodeBase64(encryptedDataStr))); 50 System.out.println("解密后的數據:"+decodeDataStr); 51 } 52 53 }

?

總結

以上是生活随笔為你收集整理的加密算法使用(四):AES的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。