Java使用AES加解密

AES是一種對稱的加密算法,可基于相同的密鑰進行加密和解密。Java采用AES算法進行加解密的邏輯大致如下:

  • 生成/獲取密鑰
  • 加/解密

1.1生成密鑰

密鑰的生成是通過KeyGenerator來生成的。通過獲取一個KeyGenerator實例,然后調用其generateKey()方法即可生成一個SecretKey對象。

1.2密鑰的存儲

密鑰SecretKey里面最核心的內容就是其中的密鑰對應的字節數組,可以通過SecretKey的getEncoded()方法獲取。然后把它存儲起來即可。最簡單的方式就是直接寫入一個文件中。

1.3獲取存儲的密鑰

獲取存儲的密鑰的核心是把密鑰的字節數組轉換為對應的SecretKey。這可以通過SecretKeySpec來獲取,其實現了SecretKey接口,然后構造參數里面將接收密鑰的字節數組。

1.4加解密

Java采用AES算法進行加解密的過程是類似的,具體如下:
1、指定算法,獲取一個Cipher實例對象
2、生成/讀取用于加解密的密鑰
3、用指定的密鑰初始化Cipher對象,同時指定加解密模式,是加密模式還是解密模式。
4、通過Cipher的dofinal(byte[] var1)進行最終的加解密操作。
"AES/CBC/PKCS5Padding":"算法/模式/補碼方式" 
"DES/ECB/PKCS5Padding":"算法/模式/補碼方式" 
1、是DES,不是3DES。
2、分組模式是ECB,所以不需要初始化向量。
3、填充模式是PKCS5Padding。

參考鏈接
iOS和java后端AES加解密

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容