IT源码网

DES加密/解密类。

wyy 2021年05月15日 编程语言 332 0

用法:

string s = DESEncrypt.Encrypt("123456");//加密

s = DESEncrypt.Decrypt(s);//解密

/// <summary> 
    /// DES加密/解密类。 
    /// </summary> 
    public class DESEncrypt 
    { 
        public const string KEY = "aaaaaaaaaa"; 
        public DESEncrypt() 
        {             
        } 
 
        #region ========加密========  
  
        /// <summary> 
        /// 加密 
        /// </summary> 
        /// <param name="Text"></param> 
        /// <returns></returns> 
        public static string Encrypt(string Text)  
        { 
            return Encrypt(Text, KEY); 
        } 
        /// <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, KEY); 
        } 
        /// <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  
 
 
    }

评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

MySQL数据类型