首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么隐藏数据库连接的用户名密码

2012-02-21 
如何隐藏数据库连接的用户名密码?连接字符串保存在web.config里面,别人登录web服务器后就能看到数据库服务

如何隐藏数据库连接的用户名密码?
连接字符串保存在web.config里面,别人登录web服务器后就能看到数据库服务器中的数据库的用户名,密码,很不安全

怎样可以隐藏这些用户名,密码? 加密?

可以定义在程序里吗,怎样才能让gridview调用他呢?


非常感谢





[解决办法]
定义在程序中和定义在web.config有区别吗.
都登录WEB服务器了,你的程序自然也就暴露了.

[解决办法]
通过加密保存在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;
[解决办法]
关注下

[解决办法]
如果数据库连接不怎么改动,完全可以自己写个类生成dll封装起来就完事!
[解决办法]
vs里面自带了加密工具..
但是这个加密和解密必须在一太电脑上完成..
也就是说. 你在这个电脑加的密. 在拿到别人的机器上就不好使了..

参考
[解决办法]
有必要加密吗。?哈哈
[解决办法]
可以定义在程序里,和在web里调用基本相似
但是定义在程序里,不能修改连接串
定义在webconfig里加密是可行的,但不能直接修改,可以启用加密算法修改
但是只考虑连接串防止数据库安全是不行的
在程序代码里,要考虑防止sql注入更是是必不可少的



[解决办法]
关注中
[解决办法]
期待高手出现
[解决办法]
能看到web.config ,服务器已经沦陷了。

怎么搞也没有用,惹恼了人家,干脆改你的密码。
[解决办法]
可以加密你的连接字符串,具体的方法:
新建一个.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" 你应该改为你的应用程序的位置。

当然楼主也可以自己用加解密的算法来实现功能,上面的方法是微软自带的。具体的信息上网搜索一下就可以。

[解决办法]
关注中
[解决办法]
1. web.config是在服务器端的,普通用户看不见
2. 如果不想明文显示,可以
ASP.NET中web.config中加密连接字符串
[解决办法]

探讨
1. web.config是在服务器端的,普通用户看不见


2. 如果不想明文显示,可以
ASP.NET中web.config中加密连接字符串


[解决办法]
加密配置 加密加密

[解决办法]
可以加密的,
不过,别人都能登录到你的机器了,做这些加密没有什么大用了
[解决办法]
将数据进行加密,使用之前先解密再读取.
[解决办法]
将数据进行加密,使用之前先解密再读取.
[解决办法]
学习
[解决办法]
探讨
可以加密你的连接字符串,具体的方法:
新建一个.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"


[解决办法]
可以对数据库连接加密。
不过这个只能骗骗不懂行的人。
能进入你的服务器,加不加密都不重要了
[解决办法]
up
[解决办法]
探讨
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");


[解决办法]
加密就MD5加密下,不过上面都说了,WEB CONFIG都看见了,还有啥用
[解决办法]
18楼

http://www.cnblogs.com/9who/archive/2008/07/28/1254526.html
[解决办法]
在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。

以上内容摘自《Asp.net 2.0技术内幕》(意)Dino Esposito著 施平安 译。
第二部分:7.2.2.4章节,236页。
[解决办法]
关注
[解决办法]
能连上了对于比较厉害的来说基本也没什么作用了
[解决办法]
C# code
private void ProtectSection(string sectionName, string provider)    {        Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);        ConfigurationSection section = config.GetSection(sectionName);        if (section != null && !section.SectionInformation.IsProtected)        {            section.SectionInformation.ProtectSection(provider);            config.Save();        }    }    private void UnProtectSection(string sectionName)    {        Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);        ConfigurationSection section = config.GetSection(sectionName);        if (section != null && section.SectionInformation.IsProtected)        {            section.SectionInformation.UnprotectSection();            config.Save();        }    }ProtectSection("connectionStrings", "DataProtectionConfigurationProvider");ProtectSection("appSettings", "RsaProtectedConfigurationProvider");UnProtectSection("connectionStrings");UnProtectSection("appSettings"); 


[解决办法]
学习一下
[解决办法]
把连接属性写到一个二进制文件中。
不过貌似也没有什么意义
[解决办法]
学习一下
[解决办法]
利用hash函数。进行散列加密。
[解决办法]
我的做法是写在 .cs 文件中,然后编译成 dll
[解决办法]
学习
[解决办法]

探讨
可以加密的,
不过,别人都能登录到你的机器了,做这些加密没有什么大用了

[解决办法]
你可以通过数据库的加密函数进行加密保存
如:
SQL code
  insert   into   user   (username,password)     values   ('testuser',pwdencrypt('testpassword'))
[解决办法]
这个没有必要加密吧。。
[解决办法]
加密你的连接字符串,要用时再解密,应该可以
[解决办法]
加密存储,解密读取
[解决办法]
探讨
可以加密你的连接字符串,具体的方法:
新建一个.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"


[解决办法]
学习中
[解决办法]
其实不用加密的,用户怎么可能登录到服务器呢?
[解决办法]
加密web.config中连接字符串

热点排行