字符串加密及解密
public static class EncryptHelper
{
private static readonly string sKEY = "ZTdkNTNmNDE2NTM3MWM0NDFhNTEzNzU1";
private static readonly string sIV = "4rZymEMfa/PpeJ89qY4gyA==";
public static string Decrypt(string encString)
{
RijndaelManaged rijndaelManaged = new RijndaelManaged
{
Padding = PaddingMode.Zeros,
Mode = CipherMode.CBC,
KeySize = 128,
BlockSize = 128
};
byte[] bytes = Encoding.UTF8.GetBytes(sKEY);
byte[] rgbIV = Convert.FromBase64String(sIV);
ICryptoTransform transform = rijndaelManaged.CreateDecryptor(bytes, rgbIV);
byte[] array = Convert.FromBase64String(encString);
byte[] array2 = new byte[array.Length];
MemoryStream stream = new MemoryStream(array);
CryptoStream cryptoStream = new CryptoStream(stream, transform, CryptoStreamMode.Read);
cryptoStream.Read(array2, 0, array2.Length);
return Encoding.UTF8.GetString(array2).TrimEnd(new char[1]);
}
public static string Encrypt(string rawString)
{
RijndaelManaged rijndaelManaged = new RijndaelManaged
{
Padding = PaddingMode.Zeros,
Mode = CipherMode.CBC,
KeySize = 128,
BlockSize = 128
};
byte[] bytes = Encoding.UTF8.GetBytes(sKEY);
byte[] rgbIV = Convert.FromBase64String(sIV);
ICryptoTransform transform = rijndaelManaged.CreateEncryptor(bytes, rgbIV);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, transform, CryptoStreamMode.Write);
byte[] bytes2 = Encoding.UTF8.GetBytes(rawString);
cryptoStream.Write(bytes2, 0, bytes2.Length);
cryptoStream.FlushFinalBlock();
byte[] inArray = memoryStream.ToArray();
return Convert.ToBase64String(inArray);
}
public static string GetHash(string key)
{
var md = new MD5CryptoServiceProvider();
var array = md.ComputeHash(Encoding.UTF8.GetBytes(key));
var stringBuilder = new StringBuilder();
for (int i = 0; i < array.Length; i++)
{
stringBuilder.Append(array[i].ToString("x2"));
}
return stringBuilder.ToString();
}