using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace SureSoft.Utility
{
public class Security
{
public static string MD5(string value)
{
MD5 mD = new MD5CryptoServiceProvider();
byte[] bytes = Encoding.Default.GetBytes(value);
byte[] array = mD.ComputeHash(bytes);
mD.Clear();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < array.Length - 1; i++)
{
stringBuilder.Append(array[i].ToString("x").PadLeft(2, '0'));
}
return stringBuilder.ToString();
}
public static string AESEncrypt(string plainText)
{
Rijndael rijndael = Rijndael.Create();
rijndael.IV = new byte[]
{
18,
52,
86,
120,
144,
171,
205,
239,
18,
52,
86,
120,
144,
171,
205,
239
};
string s = "abcdabcdabcdabcdabcdabcdabcdabcd";
rijndael.Key = Encoding.UTF8.GetBytes(s);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write);
plainText += "=";
cryptoStream.Write(Encoding.UTF8.GetBytes(plainText), 0, plainText.Length);
cryptoStream.FlushFinalBlock();
byte[] inArray = memoryStream.ToArray();
cryptoStream.Close();
memoryStream.Close();
return Convert.ToBase64String(inArray);
}
public static string AESDecrypt(string codeText)
{
Rijndael rijndael = Rijndael.Create();
rijndael.IV = new byte[]
{
18,
52,
86,
120,
144,
171,
205,
239,
18,
52,
86,
120,
144,
171,
205,
239
};
string s = "abcdabcdabcdabcdabcdabcdabcdabcd";
rijndael.Key = Encoding.UTF8.GetBytes(s);
byte[] array = Convert.FromBase64String(codeText);
MemoryStream memoryStream = new MemoryStream(array);
CryptoStream cryptoStream = new CryptoStream(memoryStream, rijndael.CreateDecryptor(), CryptoStreamMode.Read);
byte[] array2 = new byte[array.Length];
cryptoStream.Read(array2, 0, array2.Length);
cryptoStream.Close();
memoryStream.Close();
string @string = Encoding.UTF8.GetString(array2);
return @string.Substring(0, @string.LastIndexOf("="));
}
}
}