webconfig 数据库加密方式_webconfig 数据库连接 加密 - CSDN
精华内容
参与话题
  • web.config中配置数据库连接的两种方式

    万次阅读 多人点赞 2016-10-27 10:07:12
    在网站开发中,数据库操作是经常要用到的操作,ASP.NET中一般做法是在web.config中配置数据库连接代码,然后在程序中调用数据库连接代码,这样做的好处就是当数据库连接代码需要改变的时候,我们只要修改web.config...

    在网站开发中,数据库操作是经常要用到的操作,ASP.NET中一般做法是在web.config中配置数据库连接代码,然后在程序中调用数据库连接代码,这样做的好处就是当数据库连接代码需要改变的时候,我们只要修改web.config中的数据库连接代码即可,而不必在修改每一个页面中的数据库连接代码。

    在ASP.NET中有两种配置数据库连接代码的方式,它们分别是 appSettings 和 connectionStrings 。在使用 appSettings 和 connectionStrings 配置数据库连接代码时,可分别在 <configuration> 下添加如下代码:

    1. appSettings

    <appSettings>
    <add key="conn" value="server=服务器名;database=数据库名;uid=用户名;password=密码;"/>
    </appSettings>

    2. connectionStrings

    <connectionStrings>
    <add name="conn" connectionString="server=服务器名;database=数据库名;uid=用户名;password=密码" providerName="System.Data.SqlClient" />
    </connectionStrings>

    appSettings 和 connectionStrings 的区别:(摘自http://www.cnblogs.com/kerry1986/archive/2009/07/08/1518895.html

    (1) appSettings 是在 2003 中常用的,connectionStrings 是在 2005 中常用的;

    (2) 使用 connectionStrings 的好处:

    第一,可将连接字符串加密,使用MS的一个加密工具即可;

    第二,可直接绑定数据源控件,而不必写代码读出来再赋值给控件;

    第三,可方便的更换数据库平台,如换为 Oracle 数据库,只需要修改 providerName。

    (3) 写在 appSettings 中用 System.Configuration.ConfigurationManager.AppSettings["keyname"] 获取数据库连接代码值;写在 connectionStrings 中用 System.Configuration.ConfigurationManager.ConnectionStrings["name"] 获取数据库连接代码值。


    转载:http://www.cnblogs.com/sunzhiyue/archive/2011/06/07/2074696.html


     一个很简单的webconfig.xml内配置数据库连接,这也是在网上转载的。自己在做了些笔记。欢迎小学生来关顾,大神就直接忽略吧。

      webconfig.xml的配置内容如下:

      <configuration>

      <connectionStrings>

      <add name="ApplicationServices"

      connectionString="data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"

      providerName="System.Data.SqlClient" />

      <add name="TESR_DB" connectionString="user id=sa;Data Source=127.1.1.1;password=12345678;Persist Security Info=True;" providerName="System.Data.SqlClient" />

      </connectionStrings>

      ……

      </configuration>

      Persist Security Info=True;的意识是:是否保密信息,DO在数据库连接成功后是否保存密码信息。True表示保存,False表示不保存。

      主要是name="TESR_DB",会被后台对应的ConfigurationManager.ConnectionStrings取到

      以上的是SQL SEVER的,Oracle的是<add name="TESR_DB" connectionString="DATA SOURCE=127.1.1.1;PASSWORD=12345678;USER ID=sa" providerName="Oracle.DataAccess.Client" />

      测试是否连接代码:

      (在后台要引用webconfig.xml的配置信息,需要引入 using System.Configuration;库,才可调用到webconfig.xml的配置信息)

      string myvar1 = ConfigurationManager.ConnectionStrings["TESR_DB"].ToString();

      SqlConnection conn = new SqlConnection(myvar1);

      try

      {

      conn.Open();

      Response.Write("连接成功");

      }

      catch (Exception ex)

      {

      Response.Write("连接失败");

      }

      这里和显然的告诉大家,或许都已经注意到了name="TESR_DB"在后台是被 ConfigurationManager.ConnectionStrings["TESR_DB"].ToString();是一致的。一个项目对应多个数据库什么的或者其他信息,就是利用不同的name来设置。

    转载:http://www.3lian.com/edu/2014/05-13/147244.html


    C#连接SQL Server数据库代码解析

    连接字符串:

    <connectionStrings>

      <add name="conn" connectionString="user id=sa;Password=;initial catalog=Northwind;Server=YourSQLServer;Connect Timeout=30;" providerName="System.Data.SqlClient" />

    </connectionStrings>

    --------------------------------------------------------------------------------

    参数介绍(注意:参数间用分号分隔):

    "user id=sa":连接数据库的验证用户名为sa.他还有一个别名"uid",所以这句我们还可以写成"uid=sa".

    "password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".

    这里注意,你的SQL Server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的SQL Server设置为Windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录,而需要使用"Trusted_Connection=SSPI"来进行登录.

    "initial catalog=Northwind":使用的数据源为"Northwind"这个数据库.他的别名为"Database",本句可以写成"Database=Northwind".

    "Server=YourSQLServer":使用名为"YourSQLServer"的服务器.他的别名为"Data Source","Address","Addr".如果使用的是本地数据库且定义了实例名,则可以写为"Server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或IP地址.

    "Connect Timeout=30":连接超时时间为30秒.

    注:以上User ID,Password可以大写也可以小写,与大小写无关


    展开全文
  • 如何对web.config进行加密和解密

    万次阅读 2011-06-05 23:09:00
    在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或者数据库发生变更,那么我们就不得不修改源程序并重新将其编译。更好的解决方法是将...

        在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或者数据库发生变更,那么我们就不得不修改源程序并重新将其编译。更好的解决方法是将数据库连接字符串写入到web.config配置文件中,可问题是将连接字符串写入到web.config文件中之后,任何人都能打开看到所连接的数据库名和密码,又会带来安全隐患,因此为了保证数据库的安全性,我们可以通过使用微软IDE自带的命令aspnet_regiis.exe将配置文件web.config中指定的标签进行加密,如果以后想查看加密后的连接字符串,我们还可以使用aspnet_regiis.exe将加密后的字符串进行解密。


    1.    加密通用语法
      加密一个特定网站的web.config文件的通用形式
      aspnet_regiis.exe -pef secion physical_directory -prov provider
      或
      aspnet_regiis.exe -pe secion -app virtual_directory -prov provider
      其中,各个参数的含义如下:

    •      section表示要加密的配置节
    •      physical_directory用于指定站点的物理路径。
    •      virtual_directory用户指定虚拟路径。
    •      provider指定加密提供程序。

        加密一个特定站点的连接字符串就是:
        aspnet_regiis.exe -pef "connectionStrings" "你的web项目路径" -prov "DataProtectionConfigurationProvider"
        其中DataProctionConfiguartionProvider是Windows数据保护API(DPAPI)提供程序,它使用Windows内置的密码学技术来加解密配置节。默认情况下,这个提供程序使用本机的密钥。


    2.    加密方法

     

      运行Visual Studio 2008命令提示


       

      加密后的结果

    3.    解密
       解密该连接字符串也很简单
       aspnet_regiis.exe -pdf "connectionStrings" '你的web项目路径"

       解密后的结果:


    4.    后台代码读取配置文件web.config中数据库连接字符串的方法:


       运行效果图:


    5.    在连接字符串的加密和解密的过程中,需要注意一下几点。

    •      使用加密的连接字符串

        使用加密的连接字符串不需要编码解密,ASP.NET会自动对加密内容进行解密。

    •      加密和解密在同一台计算机上使用

        在加密过程中,使用了一个基于本机的密钥。这就意味着加密和解密必须在同一台计算机上进行,否则将不能解密。同时,在一台计算机上加密的配置,在另一台计算机上将不能正常使用。

    •      中文路径问题

        该命令对中文支持不是很好。如果站点的路径中有中文字符,也许不能正常加解密。


    展开全文
  • 网站部署在客户服务器上,但是网站所用的数据库要连接公司mssql服务器。如果数据库连接字符串明文写在web.config中,将是相当危险的事情。    在命令提示符总进入到 C:\WINDOWS\Microsoft.net\Framework\ v4.0....

        网站部署在客户服务器上,但是网站所用的数据库要连接公司mssql服务器。如果数据库连接字符串明文写在web.config中,将是相当危险的事情。

     

       在命令提示符总进入到 C:\WINDOWS\Microsoft.net\Framework\ v4.0.xxxx,其中xxxx是您的软件版本。路径为web.config所在目录。

     

    加密:

     

    aspnet_regiis –pef connectionStrings C:\ Sales

    需要注意的是如果连接字符串写在appSettings下需要改成:

    aspnet_regiis –pef appSettings   C:\sales

    一旦执行完了加密过程,就可以打开Web.config文件,但是连接字符串已经被混淆。当ASP.NET需要,连接字符串即可自动解密,或者如果需要进行一些更改,例如修改密码,则可以手动输入以下代码来解密。

    aspnet_regiis –pdf connectionStrings c:\Websites\BegAspNet2Db

    请注意,在默认情况下,加密过程使用了一个基于加密算法执行的机器的键。解密过程(无论手动还是在处理页面过程中)必须发生在与加密相同的机器上。例如,作为XCOPY部署的一部分,移动Web.config至另外一台机器将会导致Web.config无法解密,所以推荐在部署Web站点至最终机器之后,再将连接字符串进行加密。

     

    但是如果用这种方式加密,仅仅能防止普通用户查看密码,因为用aspnet_regiis –pdf同样能轻而易举的解密!

    解决方法是加上一个RSA 密钥容器。

    假設今天我們要加密web.config,並部署到三台機器上,全部操作如下:

    1. 用aspnet_regiis -pc "SharedKeys"–exp建立三台機器共用的RSA金鑰容器(Key Container)
    2. 以aspnet_regiis -px "SharedKeys" keys.xml -pri將RSA金鑰容器匯出成XML檔
    3. 將keys.xml複製到三台機器上
    4. 在三台機器上執行aspnet_regiis -pi "SharedKeys" keys.xml滙入RSA金鑰容器
    5. 在三台機器上執行aspnet_regiis -pa "SharedKeys" "NT AUTHORITY\NETWORK SERVICE"授與ASP.NET程式執行權限 (2010-08-30更新: IIS 7.5預設會使用IIS APPPOOL\YourAppPoolName帳號而非NT AUTHORITY\NETWORK SERVICE,詳情可參見保哥的文章,以下應用到授權的地方均比照,不再重複說明。)
    6. 在web.config中加入
      <configProtectedData>
      <providers>
        <add keyContainerName="SharedKey" useMachineContainer="true"
         name="SharedKey" type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
      </configProtectedData>
    7. 使用aspnet_regiis -pe "connectionStrings" -app "/WebApplication" -prov "SharedKeys"加密連線字串區
    8. 將加密後的web.config部署到三台機器上

     

    找来找去还是微软的文档全面:
     
    展开全文
  • Web.config 加密及解密

    千次阅读 2015-09-01 22:04:48
    为了安全性,我们采用一些加密手段来加密一些敏感信息,比如数据库连接字符串。 .NET 自带了一个aspnet_regiis的程序,可以帮助我们实现对web.config的加密和解密。 1.加密 1)导航到aspnet_regiis.exe目录下 cd...

    Web应用通常使用web.config存储数据库连接信息及应用的一些基础配置信息。为了安全性,我们采用一些加密手段来加密一些敏感信息,比如数据库连接字符串。

    .NET 自带了一个aspnet_regiis的程序,可以帮助我们实现对web.config的加密和解密。

    1.加密

    1)导航到aspnet_regiis.exe目录下

    cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319

    2)加密

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -pef "connectionStrings" "D:\publish"
    Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.33440
    用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。
    版权所有(C) Microsoft Corporation。保留所有权利。
    正在加密配置节...
    成功!

    -pef 代表加密,connectionStrings代表的是要加密的配置节,D:\publish代表要加密的web.config所在的目录

    加密之后的connectionStrings:

    <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
        <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
          xmlns="http://www.w3.org/2001/04/xmlenc#">
          <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
          <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
            <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
              <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
              <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
                <KeyName>Rsa Key</KeyName>
              </KeyInfo>
              <CipherData>
                <CipherValue>FeMnXLCJptn7uRq2ZMRLRd7X2j/1sZeT99WypfKFlp2+FXe8jCUJCXlf86t/Q9R3CtnaspGiprqIMwwshZHAKo+E+6rhzlhGyLrizqLNY9kfol/ncbC+jkbX72eu6sZSE42dmsN388amxh75WS9Z/stHdg91I5Nfi6LmQUKFSfmrljEULYeyGMyKsW487jFkTvRcyApZawVlSb941hx6cfbxhlmjrIaTDKOXyiKFptiV8Qs7GsgvRL4L2wbKRUqp7k3po82l/ovVqmjv39SuMOv+ZdwCUi4ZAoQUvluX3VeIF+K2S8VK61v4sGZvCHqRZO72mQsgk/SovIRYGsxQ/Q==</CipherValue>
              </CipherData>
            </EncryptedKey>
          </KeyInfo>
          <CipherData>
            <CipherValue>mYKo+/TqmqRumdDTN3+zWgi+wXbBnKMowc77uE/IF2/f9ZcyjHuRRJtmIu1t/kFtX4zYON/EFf8yigDGVk4QpNblMUPTMU1CV0v8KHLvb08iZetf0ZIWpA3LB3so2npKUTl4LcXzIIIjuLhYLfxvuEJJdg0WuYyw4Yqxwn5NwuierX26gl73LCxdKUT3LMAX+OgWW2j4evhJ5YhvCLe5I8yo8xrGrpkAvUMf8YYGxWfAqyVQPklG20lFvZ0tMzGJ</CipherValue>
          </CipherData>
        </EncryptedData>
      </connectionStrings>
    加密前的连接字符串:
    <connectionStrings>
        <add name="sqlConnStr" connectionString="server=localhost;database=HibernateDB;uid=sa;pwd=1234"
          providerName="System.Data.SqlClient" />
      </connectionStrings>
    2.解密

    有加密自然有解密,解密其实非常简单,使用如下命令即可:

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -pdf "connectionStrings" "D:\publish"
    Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.33440
    用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。
    版权所有(C) Microsoft Corporation。保留所有权利。
    正在解密配置节...
    成功!

    说明:

    1)加密后无需修改代码IIS可以直接读取配置信息。

    2)从其他已加密的文件里拷贝加密字符替换未加密文件的配置节,IIS将无法正确读取配置信息。

    3)aspnet_regiis.exe在使用前先确保iis已安装,并且aspnet_regiis已安装

    4)确保cmd是以系统管理员身份启动,否则执行效果如下:

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -pef "connectionStrings" "D:\publish"
    Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.33440
    用于在本地计算机上安装和卸载 ASP.NET 的管理实用工具。
    版权所有(C) Microsoft Corporation。保留所有权利。
    正在加密配置节...
    执行 connectionStrings 的配置节处理程序时出错。
    
    未能使用提供程序“RsaProtectedConfigurationProvider”加密节“connectionStrings”。提供程序返回错误消息: 对象已存在。
    
    失败!
    








    展开全文
  • web.config配置连接字符串的方法

    千次阅读 2017-03-21 22:14:21
    代码如下:              <add name="connstr4" connectionString="......" providerName="System.Data.Sqlclient"
  • 近日正在看Asp.net,看到Web.config有很不清楚之...在ASP.NET的web.config中,可以用两种方式来写连接字符串的配置。 configuration> appSettings> add key="connstr1" value="Data Source=.;Initial Catalog=DB
  • C# Web.Config 加密与解密

    千次阅读 2017-05-02 15:43:25
    用后台编码的形式对web.config数据库连接字符串或者某个节点进行加密 这里提供俩种方式: DataProtectionConfigurationProvider和RSAProtectedConfigurationProvider 编码形式 新建一个空网站添加Web窗体页面...
  • MemberShip加密处理方式

    千次阅读 2010-04-21 09:56:00
    先看一下Code:static void Main(string[] args) { string password = "******"; //[这里密码就不写出来了] string salt = "OoBH7KjGqLNjM9MsSeKV4w=="; Console.WriteLine(Enco
  •  [加密] 在命令窗口输入 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pef "connectionStrings" "E:\WANGZHAOWU\ENKJ_OA"  然后确定即可完成对web.config的加密。  
  • 在web.config中配置数据库连接字符串

    千次阅读 2013-08-09 13:47:31
    1.在web.config中配置连接字符串   ID=sy2010;Password=123456" providerName="System.Data.SqlClient"/> ...2.在文件代码中添加对连接字符串的引用 ...(1)首先要导入System.Web.Configuration ...
  • 加密配置节的信息

    千次阅读 2006-02-26 19:48:00
    通常在应用asp.net程序的时候,会将连接数据库的的ConnectionString信息放到WebConfig.xml文件中,但是连接字符串中的用户名和密码不就暴露了吗其实可以用aspnet_regiis来加密和解密ConnectionString信息比如加密的...
  • 【案例引用】 例如 XML/HTML code ? 1 2 3 ... add name="EnterpriseWebConnectionString" connectionString="Data Source=.... Initial Catalog=Enterp
  • 关于这个问题,在网上找到的资料很少,ye
  • 数据库加密的方法

    2016-12-29 08:54:32
     在服务器上新建一个数据库并新建一张表,...数据库中存放的是明文密码及加密后的密码,当程序所连接的数据库的密码修改之后,只需这个小权限的用户登录之后修改就好了,不用所有的程序的webconfig文件修改啦
  • 在网站开发中,数据库操作是经常要用到的操作,ASP.NET中一般做法是在web.config中配置数据库连接代码,然后在程序中调用数据库连接代码,这样做的好处就是当数据库连接代码需要改变的时候,我们只要修改web.config...
  • Web.config 对数据库加密操作

    千次阅读 2012-05-11 20:05:34
    在Web.config 中加入:     然后,定义一个公共常量类获取并处理: ...public class PubConstant ... //获取连接字符串,判断是否加密处理  //  public static string ConString  {  get  {  strin
  • Aspnet_regiis.exe命令已经提供了加密配置文件的方法,系统默认提供两种加密方式:DataProtectionConfigurationProviderRSAProtectedConfigurationProvider当然,如果有兴趣也可以编写自己的加密提供程序。...
  • 加密web.config的appSettings节点和connectionStrings节点  新建Default.aspx;Page_Load事件如下  protected void Page_Load(object sender, EventArgs e)  {  Configuration config = WebCon
1 2 3 4 5 ... 20
收藏数 981
精华内容 392
关键字:

webconfig 数据库加密方式