ASE加密与解密
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
{
///
/// AES加密
///
/// 要加密的字符串
/// 密钥
/// 向量
///
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;
}
///
/// 解密
///
/// 要解密字符串
/// 向量
/// 密钥
///
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;
}
}
}