md5 和des俩种方式完整版加密解密
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace Xhxx.Utils
{
public class ZEncypt
{
//Encrypt 加密 Decrypt 解密
private static byte[] AESKeys = new byte[16]
{
623, 114, 101, 121, 111, 117, 109, 121, 83, 110,
111, 9, 109, 97, 110, 63
};
private static byte[] DESKey = new byte[32]
{
3, 11, 19, 27, 35, 43, 51, 59, 67, 75,
155, 147, 139, 123, 123, 115, 107, 99, 91, 83,
243, 251, 163, 171, 179, 199, 195, 235, 227, 219,
211, 203
};
public static string AESEncrypt(string encryptString, string encryptKey)
{
encryptKey = ZString.GetSubString(encryptKey, 32, "");
encryptKey = encryptKey.PadRight(32, ' ');
RijndaelManaged rijndaelManaged = new RijndaelManaged();
rijndaelManaged.Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 32));
rijndaelManaged.IV = AESKeys;
ICryptoTransform cryptoTransform = rijndaelManaged.CreateEncryptor();
byte[] bytes = Encoding.UTF8.GetBytes(encryptString);
byte[] inArray = cryptoTransform.TransformFinalBlock(bytes, 0, bytes.Length);
return Convert.ToBase64String(inArray);
}
public static string AESDecrypt(string decryptString, string decryptKey)
{
try
{
decryptKey = ZString.GetSubString(decryptKey, 32, "");
decryptKey = decryptKey.PadRight(32, ' ');
RijndaelManaged rijndaelManaged = new RijndaelManaged();
rijndaelManaged.Key = Encoding.UTF8.GetBytes(decryptKey);
rijndaelManaged.IV = AESKeys;
ICryptoTransform cryptoTransform = rijndaelManaged.CreateDecryptor();
byte[] array = Convert.FromBase64String(decryptString);
byte[] bytes = cryptoTransform.TransformFinalBlock(array, 0, array.Length);
return Encoding.UTF8.GetString(bytes);
}
catch
{
return "";
}
}
public static string DESEncrypt(string strSource)
{
return DESEncrypt(strSource, DESKey);
}
public static string DESEncrypt(string strSource, byte[] key)
{
SymmetricAlgorithm symmetricAlgorithm = Rijndael.Create();
symmetricAlgorithm.Key = key;
symmetricAlgorithm.Mode = CipherMode.ECB;
symmetricAlgorithm.Padding = PaddingMode.Zeros;
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, symmetricAlgorithm.CreateEncryptor(), CryptoStreamMode.Write);
byte[] bytes = Encoding.Unicode.GetBytes(strSource);
cryptoStream.Write(bytes, 0, bytes.Length);
cryptoStream.FlushFinalBlock();
cryptoStream.Close();
return Convert.ToBase64String(memoryStream.ToArray());
}
public static string DESDecrypt(string strSource)
{
return DESDecrypt(strSource, DESKey);
}
public static string DESDecrypt(string strSource, byte[] key)
{
SymmetricAlgorithm symmetricAlgorithm = Rijndael.Create();
symmetricAlgorithm.Key = key;
symmetricAlgorithm.Mode = CipherMode.ECB;
symmetricAlgorithm.Padding = PaddingMode.Zeros;
ICryptoTransform transform = symmetricAlgorithm.CreateDecryptor();
byte[] buffer = Convert.FromBase64String(strSource);
MemoryStream stream = new MemoryStream(buffer);
CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Read);
StreamReader streamReader = new StreamReader(stream2, Encoding.Unicode);
return streamReader.ReadToEnd().Trim(new char[1]);
}
public static string MD5(string str)
{
byte[] bytes = Encoding.Default.GetBytes(str);
bytes = new MD5CryptoServiceProvider().ComputeHash(bytes);
string text = "";
for (int i = 0; i < bytes.Length; i++)
{
text += bytes[i].ToString("x").PadLeft(2, '0');
}
return text;
}
public static string SHA256(string str)
{
byte[] bytes = Encoding.UTF8.GetBytes(str);
SHA256Managed sHA256Managed = new SHA256Managed();
byte[] inArray = sHA256Managed.ComputeHash(bytes);
return Convert.ToBase64String(inArray);
}
}
}