1.MD5
2.DES
一 MD5
介绍:MD5是不可逆解密方式,比如对密码的加密,为了保密,让密码不能解密
public static string MD5Encrypt(string str) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] bs = md5.ComputeHash(Encoding.Default.GetBytes(str)); string result = BitConverter.ToString(bs); return result; }
二 DES
介绍:对称加密,可解密
private static readonly string Key = "xxxxx";
/// <summary> /// Des解密方法 /// </summary> /// <param name="val"></param> /// <param name="key"></param> /// <param name="IV"></param> /// <returns></returns> public static string DESDecrypt(string val) { byte[] buffer1 = Encoding.Default.GetBytes(Key.Substring(0, 8)); byte[] buffer2 = buffer1; DESCryptoServiceProvider provider1 = new DESCryptoServiceProvider(); provider1.Mode = CipherMode.ECB; provider1.Key = buffer1; provider1.IV = buffer2; ICryptoTransform transform1 = provider1.CreateDecryptor(provider1.Key, provider1.IV); byte[] buffer3 = Convert.FromBase64String(val); MemoryStream stream1 = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream1, transform1, CryptoStreamMode.Write); stream2.Write(buffer3, 0, buffer3.Length); stream2.FlushFinalBlock(); stream2.Close(); return Encoding.Default.GetString(stream1.ToArray()); } /// <summary> /// Des加密方法 /// </summary> /// <param name="val"></param> /// <param name="key"></param> /// <param name="IV"></param> /// <returns></returns> public static string DESEncrypt(string val) { byte[] buffer1 = Encoding.Default.GetBytes(Key.Substring(0, 8)); byte[] buffer2 = buffer1; DESCryptoServiceProvider provider1 = new DESCryptoServiceProvider(); provider1.Mode = CipherMode.ECB; provider1.Key = buffer1; provider1.IV = buffer2; ICryptoTransform transform1 = provider1.CreateEncryptor(provider1.Key, provider1.IV); byte[] buffer3 = Encoding.Default.GetBytes(val); MemoryStream stream1 = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream1, transform1, CryptoStreamMode.Write); stream2.Write(buffer3, 0, buffer3.Length); stream2.FlushFinalBlock(); stream2.Close(); return Convert.ToBase64String(stream1.ToArray()); }