一)什麼是aes?
高階加密標準(英語:advanced encryption standard,縮寫:aes),是一種區塊加密標準。這個標準用來替代原先的des,已經被多方分析且廣為全世界所使用。
那麼為什麼原來的des會被取代呢,,原因就在於其使用56位金鑰,比較容易被破解。而aes可以使用128、192、和256位金鑰,並且用128位分組加密和解密資料,相對來說安全很多。完善的加密演算法在理論上是無法破解的,除非使用窮盡法。使用窮盡法破解金鑰長度在128位以上的加密資料是不現實的,僅存在理論上的可能性。統計顯示,即使使用目前世界上運算速度最快的計算機,窮盡128位金鑰也要花上幾十億年的時間,更不用說去破解採用256位金鑰長度的aes演算法了。
目前世界上還有組織在研究如何攻破aes這堵堅厚的牆,但是因為破解時間太長,aes得到保障,但是所用的時間不斷縮小。隨著計算機計算速度的增快,新演算法的出現,aes遭到的攻擊只會越來越猛烈,不會停止的。
二)jaes加密
先來一段加密**,說明請看注釋:
/**
* aes加密字串
* *@param content
* 需要被加密的字串
*@param password
* 加密需要的密碼
*@return 密文
*/public
static
byte encrypt(string content, string password) catch (nosuchpaddingexception e) catch (nosuchalgorithmexception e) catch (unsupportedencodingexception e) catch (invalidkeyexception e) catch (illegalblocksizeexception e) catch (badpaddingexception e)
return
null;
}
三)aes解密
/**
* 解密aes加密過的字串
* *@param content
* aes加密過過的內容
*@param password
* 加密時的密碼
*@return 明文
*/public
static
byte decrypt(byte content, string password) catch (nosuchalgorithmexception e) catch (nosuchpaddingexception e) catch (invalidkeyexception e) catch (illegalblocksizeexception e) catch (badpaddingexception e)
return
null;
}
四)測試
public
static
void
main(string args)
五)進製轉換
進製轉換的工具類:
/**
* 進製轉換工具類
*@author tanjierong
* */
public
class
parsesystemutil
} return sb.tostring();
} /**將16進製制轉換為二進位制
*@param hexstr
*@return
*/public
static
byte parsehexstr2byte(string hexstr)
return result;
}}
Aes加密解密
加密時 先對string進行utf8解析成陣列 對陣列進行加密 對加密結果用base64解析成string。那麼揭秘時,對字串的解析方式是必須要 倒 過來的,就成這樣子了 解密時 先對string進行base64解析成陣列 對陣列進行解密 對解密結果用utf8解析成string using syst...
AES加密解密方法
aes加密解密方法 加密方法 param data 要加密的資料 param key 加密key param iv 加密iv return 加密的結果 throws exception public static string aesencode string data,string key,str...
C 加密解密 AES
using system namespace encrypt aes解密 需要解密字串 解密後字串 public static string decrypt string str aes加密 需要加密的字串 32位金鑰 加密後的字串 public static string encrypt stri...