本文是另一个网站转载过来的
ASE加密解密源代码
放过小弟一马
不要喷
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Security.Authentication;
using System.Security.Cryptography;
namespace XMLRead_Encoder
{
class RebectASE
{
/// <summary>
/// AES加密
/// </summary>
/// <param name="plainStr">要加密的字符串</param>
/// <param name="Key">密钥</param>
/// <param name="IV">向量</param>
/// <returns>返回加密完字符串,加密失败返回false</returns>
public static string AESEncrypt(string plainStr,string IV,string Key)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);
string encrypt = null;
Rijndael aes = Rijndael.Create();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
encrypt = Convert.ToBase64String(mStream.ToArray());
}
}
}
catch {
return "false";
}
aes.Clear();
return encrypt;
}
/// <summary>
/// 解密
/// </summary>
/// <param name="encryptStr">要解密字符串</param>
/// <param name="IV">向量</param>
/// <param name="Key">密钥</param>
/// <returns>返回解密完成的字符串,解密错误返回false</returns>
public static string AESDecrypt(string encryptStr,string IV,string Key)
{
byte[] bKey = Encoding.UTF8.GetBytes(Key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
byte[] byteArray = Convert.FromBase64String(encryptStr);
string decrypt = null;
Rijndael aes = Rijndael.Create();
try
{
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
decrypt = Encoding.UTF8.GetString(mStream.ToArray());
}
}
}
catch {
return "false";
}
aes.Clear();
return decrypt;
}
}
}
转载于:https://blog.51cto.com/admin100/1393109