简单好用的,呵呵

解决方案 »

  1.   

    md5加密 
    private string HashString(string sInputString) 
      { 
      System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create(); 
      string encoded = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(sInputString))).Replace("-",""); 
      return encoded; 
      } 
      

  2.   

        /// <summary>
        /// DES加密。
        /// </summary>
        /// <param name="str">待加密的字符串</param>
        /// <param name="key">密钥,为8位字符串</param>
        /// <returns>返回加密后的字符串</returns>
        public static string DESEncrypt(string str, string key)
        {
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            // 把字符串放到byte数组中
            // 原来使用的UTF8编码,改成Unicode编码不行
            byte[] inputByteArray = Encoding.Default.GetBytes(str);
            //byte[] inputByteArray = Encoding.Unicode.GetBytes(str);        // 建立加密对象的密钥和偏移量  
            // 原文使用ASCIIEncoding.ASCII方法的GetBytes方法
            // 使得输入密码必须输入英文文本
            des.Key = ASCIIEncoding.ASCII.GetBytes(key);
            des.IV = ASCIIEncoding.ASCII.GetBytes(key);
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
            // Write the byte array into the crypto stream
            // (It will end up in the memory stream)
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();
            // Get the data back from the memory stream, and into a string
            StringBuilder ret = new StringBuilder();
            foreach (byte b in ms.ToArray())
            {
                // Format as hex
                ret.AppendFormat("{0:X2}", b);
            }
            ret.ToString();
            return ret.ToString();
        }    /// <summary>
        /// DES解密。
        /// </summary>
        /// <param name="str">待解密的字符串</param>
        /// <param name="key">密钥,为8位字符串</param>
        /// <returns>返回解密后的字符串</returns>
        public static string DESDecrypt(string str, string key)
        {
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();        // Put the input string into the byte array
            byte[] inputByteArray = new byte[str.Length / 2];
            for (int x = 0; x < str.Length / 2; x++)
            {
                int i = (Convert.ToInt32(str.Substring(x * 2, 2), 16));
                inputByteArray[x] = (byte)i;
            }        // 建立加密对象的密钥和偏移量,此值重要,不能修改
            des.Key = ASCIIEncoding.ASCII.GetBytes(key);
            des.IV = ASCIIEncoding.ASCII.GetBytes(key);
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
            // Flush the data through the crypto stream into the memory stream
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();        // Get the decrypted data back from the memory stream
            // 建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象
            // StringBuilder ret = new StringBuilder();        return Encoding.Default.GetString(ms.ToArray());
        }