C# DES 加密解密
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; using System.IO; namespace MTR.Library.CommonHelper { public class DESEncryptHelper { /// <summary> /// Encrypt string /// </summary> /// <param name="value">The string which to be encrypted.</param> /// <returns>The value after being encrypted.</returns> public static string Encrypt(string value) { return Encrypt(value, System.Configuration.ConfigurationManager.AppSettings["pwd"]); } /// <summary> /// Encrypt string /// </summary> /// <param name="value">The string which to be encrypted.</param> /// <param name="password">The password.</param> /// <returns>The value after being encrypted.</returns> public static string Encrypt(string value, string password) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(password.Substring(0, 8)); byte[] rgbIV = Encoding.UTF8.GetBytes(password.Substring(0, 8)); byte[] inputByteArray = Encoding.UTF8.GetBytes(value); using (DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider()) { using (MemoryStream mStream = new MemoryStream()) { CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); } } } catch (Exception ex) { throw new Exception("Error when encrypting data", ex); } } /// <summary> /// Decrypt string /// </summary> /// <param name="value">The string which to be decrypted.</param> /// <returns>The value after being decrypted.</returns> public static string Decrypt(string value) { return Decrypt(value, System.Configuration.ConfigurationManager.AppSettings["pwd"]); } /// <summary> /// Decrypt string /// </summary> /// <param name="value">The string which to be decrypted.</param> /// <param name="password">The password.</param> /// <returns>The value after being decrypted.</returns> public static string Decrypt(string value, string password) { try { byte[] rgbKey = Encoding.UTF8.GetBytes(password.Substring(0, 8)); byte[] rgbIV = Encoding.UTF8.GetBytes(password.Substring(0, 8)); byte[] inputByteArray = Convert.FromBase64String(value); using (DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider()) { using (MemoryStream mStream = new MemoryStream()) { CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Encoding.UTF8.GetString(mStream.ToArray()); } } } catch (Exception ex) { throw new Exception("Error when decrypting data", ex); } } } }