/// <summary>
/// 有密码的AES加密
/// </summary>
/// <param name="text">加密字符</param>
/// <param name="password">加密的密码</param>
/// <param name="iv">密钥</param>
/// <returns></returns>
public static byte[] Encrypt(string toEncrypt, byte[] keyArray)
{
//不足16的倍数补空格
if (toEncrypt.Length % 16 != 0)
{
int tem = toEncrypt.Length % 16;
for (int i = 0; i < 16 - tem; i++)
{
toEncrypt += " ";
}
}
//byte[] keyArray1 = UTF8Encoding.UTF8.GetBytes("wuyajungogo");
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
//rDel.IV = "";
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.None;
ICryptoTransform cTransform = rDel.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return resultArray;
}
/// <summary>
/// AES解密
/// </summary>
/// <param name="text"></param>
/// <param name="password"></param>
/// <param name="iv"></param>
/// <returns></returns>
public static string Decrypt(byte[] toEncryptArray, byte[] keyArray)
{
//byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
//byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
//补充
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.None;
ICryptoTransform cTransform = rDel.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return UTF8Encoding.UTF8.GetString(resultArray);
}