在asp.net中使用加密数据库联接字符串

在我们发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下:

1.添加密钥

执行:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pc "hnlaw" -exp

其中"hnlaw"为密钥名称

2.添加web.config节点

在web.config的<configuration></configuration>之间添加:

<configProtectedData>

<providers>

<add keyContainerName="hnlaw" useMachineContainer="true" description="Uses RsaCryptoServiceProvider to encrypt and

decrypt" name="hnlaw" type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0,

Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

</providers>

</configProtectedData>

注意:这里keyContainerName="hnlaw"和name="hnlaw"分别表示你的密钥名称;

3.加密web.config

到网站根目录添加一个批处理文件enweb.bat,内容如下:

@echo off

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "system.web/identity" "E:\HS Studio\Donet2\Hnlawyer" -prov

"hnlaw"

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "connectionStrings" "E:\HS Studio\Donet2\Hnlawyer" -prov

"hnlaw"

PAUSE

注册上面的的路径和名称!

运行后出现成功!

4.解密

同样到网站根目录添加一个批处理文件deweb.bat,内容如下:

@echo off

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "system.web/identity" "E:\HS Studio\Donet2\Hnlawyer"

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pdf "connectionStrings" "E:\HS Studio\Donet2\Hnlawyer"

PAUSE

最后就是要注意:做完后找到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys目录下,找到生成

的密钥文件(可按时间查找),给上network service可读取权限,不然会出现Error message from the provider: The RSA key container could

not be opened.

无法读取

这样可能会出现,如果没有自己的服务器,没有权限修改MachineKeys目录,不知道还有其它解决办法,希望大家共享一下 :)

在asp.net中使用加密数据库联接字符串

时间: 2024-09-29 00:53:51

在asp.net中使用加密数据库联接字符串的相关文章

中使用加密数据库联接字符串保证数据安全

www.qdmm.com/BookReader/62844,68364100.aspxwww.qdmm.com/BookReader/62844,68364150.aspxwww.qdmm.com/BookReader/62844,68364155.aspxwww.qdmm.com/BookReader/62844,68364156.aspxwww.qdmm.com/BookReader/62844,68364157.aspxwww.qdmm.com/BookReader/62844,68364

2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET

今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET Framework版本与位数所对应的压缩包,里面就会有该文件了). 在所在cs文件中加入using System.Data.SQLite; 定义两个string变量:ConStr.SqlStr,分别用于SQLite的连接字符串与SQL语句. 定义SQLiteConnection变量Conn,用于连

ASP.NET中的加密页面机制

本节介绍ASP.NET对视图信息的加密功能.Page.RegisterRequiresViewStateEncryption方法就是将控件注册为需要视图状态加密的控件.如果您要开发用于处理潜在的敏感信息的自定义控件,请调用RegisterRequiresViewStateEncryption方法向页注册控件,并确保该控件的视图状态信息已加密.RegisterRequiresViewStateEncryption方法必须在页生命周期的PreRender阶段中或该阶段之前调用,下面在前面ViewSt

如何在Asp.net中备份Access数据库?

public   void   Create(   string   mdbPath   ) { if(   File.Exists(mdbPath)   )   //检查数据库是否已存在 { throw   new   Exception( "目标数据库已存在,无法创建 "); } //   可以加上密码,这样创建后的数据库必须输入密码后才能打开 mdbPath   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= &

ASP.NET中防止Access数据库下载

如何防止Access数据库下载是一个很老的话题了,网上的讨论也比较多.这里我们给出几种在ASP.NET下防止Access数据库被下载的方法. 我们这里假设Access数据库名字为 test.mdb. 1.把数据库放在WEB目录外 如你的网站目录是D:\www,你可以把数据库放到D:\data 这个文件夹里,然后修改网站程序中的数据库连接字串地址部分为:"D:\data\test.mdb" ,这样数据库可以正常调用,但是无法下载的,因为它不在网站目录里. 假设在web.config中配置

ASP.NET中修改从数据库获取的datatable中的值

有些时候,我们从数据库表中获取一个实体的对象,但有些内容并不是最终显示的内容,格式也都是不一样.经过一番尝试,发现datatable中的数值如果跟想要改变的类型不一致,就无法更改,只有添加新列,然后把想要显示的最终的数据赋给这一新列.在进行数据展示的时候,展示这一新列即可. 下附代码: public DataTable GetDT(string attName, int typeValue) { DataTable dt=dal.GetDT(attName,typeValue); DataCol

asp.net 中excel 导入数据库

protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["LYConnectionString"].ConnectionString); ;//链接数据库 conn.Open(); try { string fileurl = t

ASP.NET中几种加密方法

下面就是ASP.NET中几种加密方法.加密算法有两种,也就是上面提到的MD5和SHA1,这里我举的例子是以MD5为例,SHA1大致相同,只是使用的类不一样. MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2.md3和md4发展而来.它的作用是让大容量信息在用数字签名软件签署私人密匙

ASP.NET中MD5与SHA1加密的几种方法

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2.md3和md4发展而来.它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是md2.md4还是md5,它们都需要获得一个随机长度的信息并产