加密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"