web.config文件的加密

 

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

= " 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。

转载于:https://www.cnblogs.com/a12-3/archive/2008/06/18/1224843.html

你可能感兴趣的:(web.config文件的加密)