.Net学习笔记 - Web.config节点加密

 machine.config中指出了asp.net内置的两种加密方式,如下

  1. <configProtectedData defaultProvider="RsaProtectedConfigurationProvider">
  2.     <providers>
  3.       <add name="RsaProtectedConfigurationProvider" type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="NetFrameworkConfigurationKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
  4.       <add name="DataProtectionConfigurationProvider" type="System.Configuration.DpapiProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" description="Uses CryptProtectData and CryptUnProtectData Windows APIs to encrypt and decrypt" useMachineProtection="true" keyEntropy="" />
  5.     providers>
  6. configProtectedData>

调用方法:在Visual Studio 2005 Command Prompt里面输入

aspnet_regiis -pef connectionStrings F:/WebSite -prov DataProtectionConfigurationProvider

注释:-pef 表示加密; -pdf表示解密.

            connectionStrings 表示web.config文件中的节点名

            F:/WebSite 表示站点路径

            -prov DataProtectionConfigurationProvider表示采用何种方式加密(如果省略则表示使用machine.config中的默认配置defaultProvider)

 

-------------------------------------------------------------------------------------------------------

 

btw:如果需要在程序代码中加密字符串,可以使用System.Security.Cryptography中提供的一些类,例如SHA1CryptoServiceProvider,示例如下

       

  1. UnicodeEncoding ue = new UnicodeEncoding();
  2. byte[] byteMessage = ue.GetBytes( "abcde" );
  3. SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider( );
  4. byte[] hashValue = sha1.ComputeHash( byteMessage );
  5. string hashString = Convert.ToBase64String( hashValue );

你可能感兴趣的:(.Net学习笔记 - Web.config节点加密)