扫一扫
分享文章到微信

扫一扫
关注官方公众号
至顶头条
如何隐藏数据库连接的用户名密码?
连接字符串保存在web.config里面,别人登录web服务器后就能看到数据库服务器中的数据库的用户名,密码,很不安全.怎样可以隐藏这些用户名,密码? 加密?可以定义在程序里吗,怎样才能让gridview调用他呢? 
通过加密保存在XML里。通过XML获取数据。也可加密web.config中连接字符串.
实际上没有必要,因为web.config是在服务器上,如果能看到web.config,那么服务器中的内容他也是完全可以控制的。要是真的想隐藏,可以将连接串加密后再写入web.config文件中,在使用时,先读取解密,然后再按常规性正常逻辑处理.可以使用对称加密,一把密钥进行加解密。
public static string Encrypt(string Password, int Format) 
    { 
        string str = ""; 
        switch (Format) 
        { 
            case 0: 
                str = FormsAuthentication.HashPasswordForStoringInConfigFile(Password, "SHA1"); 
                break; 
            case 1: 
                str = FormsAuthentication.HashPasswordForStoringInConfigFile(Password, "MD5"); 
                break; 
        } 
        return str; 
    } 
这段好像就能达到效果,不知道你要的是不是这个。。。 
命名空间应该是using System.Web.Security;
可以定义在程序里,和在web里调用基本相似 
但是定义在程序里,不能修改连接串 
定义在webconfig里加密是可行的,但不能直接修改,可以启用加密算法修改 
但是只考虑连接串防止数据库安全是不行的 
在程序代码里,要考虑防止sql注入更是是必不可少的
可以加密你的连接字符串,具体的方法: 
新建一个.bat批处理文件在它的里面写 
@echo off 
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "D:\MyProject\Web" 
PAUSE 
注意"D:\MyProject\Web" 你应该改为你的应用程序的位置。 
解密语句是: 
@echo off 
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "D:\MyProject\Web" 
PAUSE 
注意"D:\MyProject\Web" 你应该改为你的应用程序的位置。 
当然楼主也可以自己用加解密的算法来实现功能,上面的方法是微软自带的。具体的信息上网搜索一下就可以。 
在asp.net2.0中引入了一种保护配置系统中存储的敏感数据的体制。.net framework2.0里面提供两种方案。 
DPAPIPortectedConfigurationProvider:使用Windows Data Protection API进行数据加密和解密。 
RSAPPortectedConfigurationProvider:默认的加密提供程序,使用RSA机密算法进行数据加密和解密。 
使用如下命令加密连接串: 
aspnet_regiis.exe -pe connectionStrings -app /proAspNet20 
加密后的web.config文件如下: 
<configuration> 
  <protectedData> 
    <protectedDataSections> 
      <add name="connectionStrings" 
            provider="RSAProtectedConfigurationProvider" /> 
    </protectedDataSections> 
  </protectedData> 
  <connectionStrings> 
    <EncryptedData ...> 
    ... 
    <CipherData> 
      <CipherValue>{base64 code} </CipherValue> 
    </CipherData> 
    </EncryptedData> 
  <connectionStrings> 
还原成明文用-pd开关代替-pe。 
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。