您的位置:首页 > 其它

web.config文件的加密

2008-06-18 17:54 344 查看
今天无聊,突然看起了petshop的代码,看到了membership连接字符串为SQLMembershipConnString,但在connectionString中并没有发现对应的名字,而且在connectionString中发现了奇怪的字符:

<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">

直觉上告诉我这是一个加密了的东东,于是打开了msdn,找到了相关信息。

对web.config的加密主要是通过以下命令完成:

加密:

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider"

解密:

aspnet_regiis -pc "RsaProtectedConfigurationProvider"–exp

但输入以上信息时你会发现一个错误(具体内容已经忘了,好像是提示你没有权限之类的)。这时你要先执行一个命令,利用aspnet_regiis的另一个参数:-pc 和-exp先建立一个rsa key 的容器(msdn上的说法,我不清楚container是否应该译为容器)。在petshop中,使用的rsa provider为RsaProtectedConfigurationProvider。创建rsa key container命令为:

aspnet_regiis -pc "RsaProtectedConfigurationProvider"–exp

现在你就可以在这个容器里对web.config中相应的节(session)进行加解密了。如果你用上面所介绍的命令可能会遇到另一个问题,你会发现不能连接相应的application,这有可能是你的网站没有在iis里建立(我通常做开发的时候是用文件系统来创建网站的)。你可以在iis里建立你的网站,你可以采用另外一种方式——利用aspnet_regiis的另外一个参数:-pef(加密) -pcf(解密)

加密:

aspnet_regiis.exe -pef "connectionStrings" "C:\petshop4.0\web"

解密:

aspnet_regiis.exe -pdf "connectionStrings" "C:\petshop4.0\web"
现在你就可以对web.config上相应的节进行加解密了。

这是我对web.config加解密学习中的一些总结,防止以后再要查msdn。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: