加密 web.config



1、打开记事本,然后将下面的代码复制到一个新文件中。
<%@ Page Language="C#" %>
<%
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
%>

保存 my.aspx 到你的web目录 ,运行一下窗体显示 “ NT AUTHORITY\NETWORK SERVICE ”。成功!

2、(关键一步)运行cmd,执行以下

aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"
 

说明:注册默认的 RsaProtectedConfigurationProvider 的RSA 密钥容器,
NetFrameworkConfigurationKey 是 RsaProtectedConfigurationProvider 的默认provider成功!

3、现在,可以加密web.config ,运行:

加密:aspnet_regiis -pe "connectionStrings" -app "/Myweb"
说明:"connectionStrings" 是要加密的节,"/Myweb"是的web目录
解密:aspnet_regiis -pd "connectionStrings" -app "/Myweb"

成功!

4、这样就可以在程序里调用了(不用解密, 哈哈):
...
string connstr= ConfigurationManager.ConnectionStrings["myConnstr"].ConnectionString.ToString();
...


同样的,也可以用创建自己的RSA 密钥容器,如下:
  (1)、创建 "MyKeys" 密钥容器,运行:aspnet_regiis -pc "MyKeys" -exp 
(2)、在web.config里加入以下:
<protectedData>
<providers>
<add name="MyProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0. 0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d0a3a,
processorArchitecture=MSIL"
keyContainerName="MyKeys"
useMachineContainer="true" />
</providers>
</protectedData>

保存。


(3)、授予帐户对计算机级别的 "MyKeys" RSA 密钥容器的访问权限,运行:

aspnet_regiis -pa "MyKeys" "NT AUTHORITY\NETWORK SERVICE"

(4)、现在,可以加密web.config ,运行:

加密aspnet_regiis -pe "connectionStrings" -app "/Myweb" -prov "MyProvider"

说明"connectionStrings" 是要加密的节"/Myweb"是的web目录"MyProvider" 自己密钥容器

解密aspnet_regiis -pd "connectionStrings" -app "/Myweb" -prov "MyProvider"
     
    

posted on 2006-01-30 18:51 azhai 阅读(5567) 评论(5)  编辑 收藏 网摘

评论

#1楼  2006-09-13 19:17 菌哥      

/Myweb"是的web目录,如果是Windows应用程序如何写目录呢?   回复  引用  查看    

#2楼  2006-09-15 12:16 Lantaio      

惭愧,最近几天才研究加密的问题。参考了你的这篇日志,十分感谢。不过文章最后关于自定义密钥容器的解密好像不需要 -prov "MyProvider" 参数的。   回复  引用  查看    

#3楼  2006-11-02 16:35 潘胜国      

在xp下面,我注册失败是怎么回事,我把后面的用户名改成aspnet照样不行?
楼主能帮忙解决一下吗,是不是在XP下就不支持呢?   回复  引用  查看    

#4楼  2007-01-12 17:36 文炽城      

这貌似只能在.net2.0版本才能用吧``
我在1.1下面不能使用``   回复  引用  查看    

#5楼  2007-02-01 11:28 老男 [未注册用户]

你好:我加密后再解密,解密用aspnet_regiis -pd "connectionStrings" -app "/Myweb" 的形式,但是解密后web.config里的字符串又变为明文的了,咋搞?   回复  引用    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索
[推荐职位]上海盛大网络招聘.Net开发工程师

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接:
 

导航

<2006年1月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

统计

与我联系

搜索

 

常用链接

留言簿(7)

我参与的团队

随笔档案

最新评论

阅读排行榜

评论排行榜