using System;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace YongFa365.Security
{
/// <summary>
/// AES加密解密
/// </summary>
public class AES
{
public static string Encrypt(string strEncrypt, string strKey)
{
try
{
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strKey, "md5"));
byte[] strEncryptArray = UTF8Encoding.UTF8.GetBytes(strEncrypt);
byte[] resultArray = null;
using (RijndaelManaged rDel = new RijndaelManaged())
{
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateEncryptor();
resultArray = cTransform.TransformFinalBlock(strEncryptArray, 0, strEncryptArray.Length);
}
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
catch
{
return null;
}
}
public static string Decrypt(string strDecrypt, string strKey)
{
try
{
byte[] keyArray = UTF8Encoding.UTF8.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strKey, "md5"));
byte[] strDecryptArray = Convert.FromBase64String(strDecrypt);
byte[] resultArray = null;
using (RijndaelManaged rDel = new RijndaelManaged())
{
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateDecryptor();
resultArray = cTransform.TransformFinalBlock(strDecryptArray, 0, strDecryptArray.Length);
}
return UTF8Encoding.UTF8.GetString(resultArray);
}
catch
{
return null;
}
}
}
}
窗体中应用:
private void btnAESEncrypt_Click(object sender, EventArgs e)//加密
{
txtD.Text = YongFa365.Security.AES.Encrypt(txtS.Text, txtKey.Text);
txtD.Focus();
txtD.SelectAll();
}
private void btnAESDecrypt_Click(object sender, EventArgs e)//解密
{
txtS.Text = YongFa365.Security.AES.Decrypt(txtD.Text, txtKey.Text);
if (txtS.Text=="")
{
MessageBox.Show("密文或密码有问题");
}
txtS.Focus();
txtS.SelectAll();
}