| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
pdkie
10年前发布

C#封装的DES加密、解密类代码

这个C#类封装的DES加密解密,可以使用默认秘钥进行加密、解密,也可以自定义秘钥进行加密、解密,调用简单方便。

using System;  using System.Security.Cryptography;   using System.Text;  namespace DotNet.Utilities  {      /// <summary>      /// DES加密/解密类。      /// </summary>      public class DESEncrypt      {          public DESEncrypt()          {                    }             #region ========加密========              /// <summary>          /// 加密          /// </summary>          /// <param name="Text"></param>          /// <returns></returns>          public static string Encrypt(string Text)          {              return Encrypt(Text,"sharejs.com");          }          /// <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,"sharejs.com");          }          /// <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            }  }