加密解密类

using System; 

using System.Collections.Generic; 

using System.Text; 

using System.Security.Cryptography;

namespace AIMSCommon 

{     /// <summary>     /// 加密、解密帮助类     /// </summary>     public class DESEncrypt     {         #region ========加密========         /// <summary>         /// 加密         /// </summary>         /// <param name="Text"></param>         /// <returns></returns>         public static string Encrypt(string Text)         {             return Encrypt(Text, "RM_Base");         }         /// <summary>         /// 加密数据         /// </summary>         /// <param name="Text"></param>         /// <param name="sKey"></param>         /// <returns></returns>         public static string Encrypt(string Text, string sKey)         {             DESCryptoServiceProvider des = new DESCryptoServiceProvider();             byte[] inputByteArray;             inputByteArray = Encoding.Default.GetBytes(Text);             des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));             des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));             System.IO.MemoryStream ms = new System.IO.MemoryStream();             CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);             cs.Write(inputByteArray, 0, inputByteArray.Length);             cs.FlushFinalBlock();             StringBuilder ret = new StringBuilder();             foreach (byte b in ms.ToArray())             {                 ret.AppendFormat("{0:X2}", b);             }             return ret.ToString();         }

        #endregion

        #region ========解密========         /// <summary>         /// 解密         /// </summary>         /// <param name="Text"></param>         /// <returns></returns>         public static string Decrypt(string Text)         {             return Decrypt(Text, "RM_Base");         }         /// <summary>         /// 解密数据         /// </summary>         /// <param name="Text"></param>         /// <param name="sKey"></param>         /// <returns></returns>         public static string Decrypt(string Text, string sKey)         {             DESCryptoServiceProvider des = new DESCryptoServiceProvider();             int len;             len = Text.Length / 2;             byte[] inputByteArray = new byte[len];             int x, i;             for (x = 0; x < len; x++)             {                 i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);                 inputByteArray[x] = (byte)i;             }             des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));             des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));             System.IO.MemoryStream ms = new System.IO.MemoryStream();             CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);             cs.Write(inputByteArray, 0, inputByteArray.Length);             cs.FlushFinalBlock();             return Encoding.Default.GetString(ms.ToArray());         }

        #endregion     } }
View Code
原文地址:https://www.cnblogs.com/zhangxiaolei521/p/5660944.html