AES:是高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准主要是代替原先的DES,以及被多方分析且广为全世界所使用。
AES加密数据块分组长度必须是128比特,密钥长度可以使128比特,192比特,256比特中的任意一个(如果数据块及密钥 长度不足时,会补齐)。AES加密有很多轮的重复和变换。大致的步骤是:1、密钥的扩展(KeyExpansion),2、初始轮(InitialRound),3.重复轮(Rounds),每一轮又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、最终轮(FinalRound),最终轮没有MixColumns。
以下展示一个小小的案例,参考学习:
//默认密钥向量
private static byte[] _Aeskey = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/// <summary>
/// AES加密,返回Base64编码后的字符
/// </summary>
/// <param name="plainText">明文字符串</param>
/// <param name="strKey&#