對稱加密中aes是比較常用,des因為安全性比不上aes已經用的較少
對稱加密:是指加密解密都是乙個金鑰,通過改金鑰加密,也通過它解密。
1.加密
/**
* 加密
* * @param content 需要加密的內容
* @param key 金鑰
* @return
*/public
static
byte
encrypt
(string content, string key)
catch
(nosuchalgorithmexception e)
catch
(nosuchpaddingexception e)
catch
(invalidkeyexception e)
catch
(unsupportedencodingexception e)
catch
(illegalblocksizeexception e)
catch
(badpaddingexception e)
return null;
}
2.解密
/**
* 解密
* * @param content 待解密內容
* @param key 解密金鑰
* @return
*/public
static
byte
decrypt
(byte
content, string key)
catch
(nosuchalgorithmexception e)
catch
(nosuchpaddingexception e)
catch
(invalidkeyexception e)
catch
(illegalblocksizeexception e)
catch
(badpaddingexception e)
return null;
}
3.測試
//下面提供兩種方式(原來避免轉字串亂碼)
1. 通過base64
(強烈推薦)來轉
org.apache.commons.codec.binary.base64
public
static
void
main
(string[
] args)
2. 通過進製轉換
/*** 將二進位制轉換成16進製制
* * @param buf
* @return
*/public
static string parsebyte2hexstr
(byte buf)
sb.(hex.
touppercase()
);}return sb.
tostring()
;}/** * 將16進製制轉換為二進位制
* * @param hexstr
* @return
*/public
static
byte
parsehexstr2byte
(string hexstr)
byte
result =
newbyte
[hexstr.
length()
/2];
for(
int i =
0; i < hexstr.
length()
/2; i++
)return result;
}public
static
void
main
(string[
] args)
因為加密後的byte陣列是不能強制轉換成字串的,也就是說字串和byte陣列在這種情況下不是互逆的;要避免這種情況,我們需要做一些修改,推薦採用base64轉碼,也可以考慮將二進位制資料轉換成十六進製制 理解AES對稱加密
很多人對於aes加密並不是很了解,導致互相之間進行加密解密困難。本文用簡單的方式來介紹aes在使用上需要的知識,而不涉及內部演算法。最後給出例子來幫助理解aes加密解密的使用方法。相比於其他加密,aes加密似乎模式很多,包括ecb cbc等等等等,每個模式又包括iv引數和padding引數,並且,不...
對稱加密 AES和DES加密 解密
對稱加密 aes和des加密 解密 目前主流的加密方式有 對稱加密 aes des 非對稱加密 rsa dsa 呼叫aes des加密演算法包最精要的就是下面兩句話 cipher cipher cipher.getinstance des cbc pkcs5padding cipher.init c...
密碼篇 對稱加密 AES
目錄 aes介紹 rijndael加密中的一輪 rijndael解密中的一輪 對三種對稱密碼的使用 rijndael於2000年被選為新一代的標準密碼演算法 aes 在aes規格中,金鑰長度為128 192 256位元三種 rijndael使用的是spn結構 rijndael中存在反向運算 不像fe...