webconfig  连接字符串加密和解密 
我想把他加密解密掉,网上资料很多是命令方式,跟机子有关,不爽啊,
请问有没有不跟机子有关的,简单的加密解密的技术
我就是想把连接字符串藏起来

解决方案 »

  1.   

    可以啊, 自己使用.net提供的加密类,可以使用DES算法对其加密,使用的时候进行解密
      

  2.   

    什么是des,什么是des,
      

  3.   


    http://msdn.microsoft.com/zh-cn/library/system.security.cryptography.descryptoserviceprovider.aspx.NET Framework 类库
    DESCryptoServiceProvider 类定义访问数据加密标准 ( DES) 算法的加密服务提供程序 (CSP) 版本的包装对象。
      

  4.   

    des 简单点的说就是:对称加密(此类加密可以进行解密),与其相反的就是非对称加密,如MD5,是单向加密。
    加密后无法解密。以下是一组加密解密的方法。你可以在保存连接字符串前进行加密,使用连接字符串时再解密后使用。        /// <summary>
            /// 名称:Encrypt
            /// DES对称加密函数
            /// </summary>
            /// <param name="str">需加密字符串</param>
            /// <param name="pkey">密匙</param>
            /// <returns>返回用指定密匙加密的字符串</returns>
            public static string Encrypt(string str, string pkey)
            {
                try
                {
                    byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(str);
                    PasswordDeriveBytes pdb = new PasswordDeriveBytes(pkey, null);
                    byte[] key = pdb.GetBytes(24);
                    byte[] iv = pdb.GetBytes(8);
                    MemoryStream ms = new MemoryStream();
                    TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
                    CryptoStream cs = new CryptoStream(ms, tdesc.CreateEncryptor(key, iv), CryptoStreamMode.Write);
                    cs.Write(bt, 0, bt.Length);
                    cs.FlushFinalBlock();
                    return Convert.ToBase64String(ms.ToArray());
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }        /// <summary>
            /// 名称:Decrypt
            /// DES对称解密函数
            /// </summary>
            /// <param name="str">需解密字符串</param>
            /// <param name="pkey">密匙</param>
            /// <returns>返回用指定密匙解密的字符串</returns>
            public static string Decrypt(string str, string pkey)
            {
                try
                {
                    byte[] bt = Convert.FromBase64String(str);
                    PasswordDeriveBytes pdb = new PasswordDeriveBytes(pkey, null);
                    byte[] key = pdb.GetBytes(24);
                    byte[] iv = pdb.GetBytes(8);
                    MemoryStream ms = new MemoryStream();
                    TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
                    CryptoStream cs = new CryptoStream(ms, tdesc.CreateDecryptor(key, iv), CryptoStreamMode.Write);
                    cs.Write(bt, 0, bt.Length);
                    cs.FlushFinalBlock();
                    return (new System.Text.UnicodeEncoding()).GetString(ms.ToArray());
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }