一般对连接字符串进行,connectionString存储密文。
连接字符串密码使用占位符,动态替换,在程序初始化的时候,可以从资源文件或者key读取填充。

解决方案 »

  1.   

    既然是web工程,你的Web.config文件本来就是放在服务器上的,有谁会看见,有什么必要加密??
      

  2.   

    在web工程里做一个加密解密方法,部署前先执行加密把数据库链接字符串加密,然后把加密结果写在config里,链接数据库时再读取,解密就行了
      

  3.   

    如何链接数据库输入密码加密
    //Web.config数据连接
     <appSettings>
        <add key="conn" value=" Data Source=(local);Database=db_Henu; Uid=sa;Pwd=" />
      </appSettings> <asp:TextBox ID="txtPass" runat="server" onFocus="tPass();" onchange="passHint()"
                                            TextMode="Password" Width="88px"></asp:TextBox>//文本框设置
    //输入密码加密
     //获取用户填写的密码并使用MD5进行加密
                    string userPass = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPass.Text, "MD5");
    //然后把经过加密的userPass字符串插入到数据库中
      

  4.   

    数据库连接字符串一般就两种加密方式
    第一个是对整个连接字符串进行可逆加密(密钥),程序加载时进行解密
    第二个是微软原生支持的加密,即对整个connectionStrings配置节进行加密,具体分私钥加密和公钥加密(DSA,RSA),而且最棒的是你在使用时无需解密,解密由Frame来实现
      

  5.   

    数据库连接字符串一般就两种加密方式
    第一个是对整个连接字符串进行可逆加密(密钥),程序加载时进行解密
    第二个是微软原生支持的加密,即对整个connectionStrings配置节进行加密,具体分私钥加密和公钥加密(DSA,RSA),而且最棒的是你在使用时无需解密,解密由Frame来实现
      

  6.   

    我给你加密的方法,这样应该可以了吧!
    /// <summary>
            /// DES公钥
            /// </summary>
            protected static string KEY_64 = "ABCDEFGH";
            /// <summary>
            /// DES私钥
            /// </summary>
            protected static string IV_64 = "ABCDEFGH";        /// <summary>
            /// DES加密
            /// </summary>
            /// <param name="value">要加密的字符串</param>
            /// <returns>密文</returns>
            public static string DESEncrypt(string value)
            {
                try
                {
                    byte[] btKEY = Encoding.UTF8.GetBytes(KEY_64.Substring(0, 8));
                    byte[] btIV = Encoding.UTF8.GetBytes(IV_64.Substring(0, 8));
                    byte[] btInput = Encoding.UTF8.GetBytes(value);                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                    MemoryStream ms = new MemoryStream();
                    CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(btKEY, btIV), CryptoStreamMode.Write);
                    cs.Write(btInput, 0, btInput.Length);
                    cs.FlushFinalBlock();
                    return Convert.ToBase64String(ms.ToArray());
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }        /// <summary>
            /// DES解密
            /// </summary>
            /// <param name="value">密文</param>
            /// <returns>原文</returns>
            public static string DESDecrypt(string value)
            {
                try
                {
                    byte[] btKEY = Encoding.UTF8.GetBytes(KEY_64.Substring(0, 8));
                    byte[] btIV = Encoding.UTF8.GetBytes(IV_64.Substring(0, 8));
                    byte[] btInput = Convert.FromBase64String(value);                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                    MemoryStream ms = new MemoryStream();
                    CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(btKEY, btIV), CryptoStreamMode.Write);
                    cs.Write(btInput, 0, btInput.Length);
                    cs.FlushFinalBlock();
                    return Encoding.UTF8.GetString(ms.ToArray());
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
      

  7.   

    本来就放服务器上,加密没必要。要是你使用的服务器有多个人都有权限登录,那你找个可逆的算法加下密不就成了吗 比如上面用DES散列