AES加密解密詳解

2021-07-24 22:58:36 字數 1927 閱讀 3907

一)什麼是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...