DES加密算法及解密算法

it2022-05-05  114

 

  /// <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();        }

 

  /// <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());        }

 

转载于:https://www.cnblogs.com/angleSJW/archive/2011/04/30/2033335.html

相关资源:DES加密算法—实现(C语言)

最新回复(0)