源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#为配置文件加密的实现方法

  • 时间:2020-04-15 08:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#为配置文件加密的实现方法
本文实例讲述了C#为配置文件加密的实现方法,分享给大家供大家参考。具体实现方法如下: 一般来说,在web.config或app.config文件里我们经常会存储一些敏感信息,比如connectionStrings或者appSettings,比如像下面的文件。
[url=http://www.1sucai.cn/article/56541.htm]C#对称加密与非对称加密[/url]),公钥存放在config文件当中,只有加密的计算机有密钥。RSAProtectedConfigurationProvider通常是默认的缺省provider。 [b]二、加密文件的命令[/b] 加密web.config文件可以使用:
[u]复制代码[/u] 代码如下:
aspnet_regiis -pef section web-app-physical-dir Encrypt the configuration section. Optional arguments: [-prov provider] Use this provider to encrypt.
比如运行下面的命令就会分别对connectionStrings和appSettings中的信息进行加密:
[u]复制代码[/u] 代码如下:
aspnet_regiis.exe -pef "connectionStrings" "C:mywebHelloService" aspnet_regiis.exe -pef "appSettings" "C:mywebHelloService"
[img]http://img.1sucai.cn/uploads/article/2018010710/20180107100121_0_98756.jpg[/img] 加密后的web.config文件变成:
[u]复制代码[/u] 代码如下:
<?xml version="1.0"?> <configuration>     <system.web>       <compilation targetFramework="4.0" />     </system.web>     <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">         <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"             xmlns="http://www.w3.org/2001/04/xmlenc#">             <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />             <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">                 <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">                     <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />                     <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">                         <KeyName>Rsa Key</KeyName>                     </KeyInfo>                     <CipherData>                         <CipherValue>E2fO9C0TJVxImLYQZza+fCQdDbTpNh/kOKLRsK6zcFjkgtUCl6SnMViuu/2G1NVTxqXyEWYwyK6AiCZA+feeG/AvYvmEEVopVDb0YyGeuJgEI1r8HxTl8Cv+f2EIimP7LJI+JRZVerI4MU6Ke3wxm2S/ATc73/W6eg9808f4/D6J0pp3wND4E79gBiAnBHFYQIefdJYUsmHR9z9LiIqjCllkkj/JB0kso0kGJ9i+iew1Jae5jugIN8gPxsXbCfmw6ru3I3Kbpa8Z5AllfkFA2YKrsuV3c7eLLJ0kB4lsIJIUTy3kRyA4GjdChOmlNwwffIbhwUPPxa25CiF0VAq27Q==</CipherValue>                     </CipherData>                 </EncryptedKey>             </KeyInfo>             <CipherData>                 <CipherValue>I1DWG11Iz/rq+NC9C/21B3Q22J9+IexHPH6kkWvQPeHUO6OvOWeQbk3wHALR2ql8pz0gQJFyfTypMk/xSSikFI2Dcy5mgYY3kP73bQQ83ho3O1HPw9TsRtK1G8gmVNGyQLj7iTRcoGfiYYmSibPynv1MzSV1qDXlnVfKiMqKRZ5ZPiMSMc5u3dDEL/JW1oCvAGs5tHrZU5+vgvm0yCmSuCWZbXva+iv9J35EQqs58pq+hwVo1hg1dffdupGCBykaXGl5VX3TIGc=</CipherValue>             </CipherData>         </EncryptedData>     </connectionStrings>     <appSettings configProtectionProvider="RsaProtectedConfigurationProvider">         <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"             xmlns="http://www.w3.org/2001/04/xmlenc#">             <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />             <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">                 <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">                     <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />                     <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">                         <KeyName>Rsa Key</KeyName>                     </KeyInfo>                     <CipherData>                         <CipherValue>WVoFIs8rSEgqKw1C0QCmePs7WK6EIoGCfdx9CTJNmABoVvoEWPnOEQwz/6Ruu0rGwa7q91KuhGILmy4NEN0padnX6FScCdEzP6CS59U3IFumYmTrD7D9ihqFO2aIL/SuBvV3D2kxhHaYGFaPuvYgsyOLf3+aYR3O/uh/k5wZxLoIeKUUrT762J3bdaK6cJWQeuOu4j2vDXEdawdwhlnK12UV8+/AXZNlFW1N3Z0RUVFX1nMSwTaIu8F3tZ9hCFbGwbTm2T0XnfDOcB6dCxCutqC8pXD36laAfiSANzAWoC+Yhf5eFSj24fX0NU6UTQB8fqLyOgWsIMLxZLKVrwnlmg==</CipherValue>                     </CipherData>                 </EncryptedKey>             </KeyInfo>             <CipherData>                 <CipherValue>5W2KhG/oETLUDptobcOM52x1qD/g9A0By/wcGXI+fm7EdcD8mT3TxsLVBVcHRBCyUO7OIHl8NyCrduRSYwyd8ggBCriQ5KrbAmW4LXrNnw/JjjCEJWPuRcRucVRfpgap2nHh6BXRXC/AU6v0GcRqy7LV8179PgGtyAa8IE1mV/w=</CipherValue>             </CipherData>         </EncryptedData>     </appSettings> </configuration>
其中RSAProtectedConfigurationProvider是默认的缺省provider,如果想使用DPAPIProtectedConfigurationProvider,可以用-prov参数指明: aspnet_regiis.exe -pef "connectionStrings" "C:mywebHelloService" -prov "DataProtectionConfigurationProvider" aspnet_regiis.exe -pef "appSettings" "C:mywebHelloService" -prov "DataProtectionConfigurationProvider" 加密配置文件后,源程序不需要做任何改动。如果要修改或添加新的配置信息,需要先解密配置文件。不论使用哪种Provider,都只能在进行加密的计算机上对配置文件进行解密。 [b]三、解密文件的命令[/b] 解密的命令如下(解密命令不需要-prov参数):
[u]复制代码[/u] 代码如下:
-pdf section web-app-physical-dir Decrypt the configuration section. aspnet_regiis.exe -pdf "connectionStrings" "C:mywebHelloService" aspnet_regiis.exe -pdf "appSettings" "C:mywebHelloService"
[img]http://img.1sucai.cn/uploads/article/2018010710/20180107100122_1_53394.jpg[/img] [b]四、总结[/b] 配置文件中经常会有用户名密码的敏感信息,为了防止该信息泄露,需要对配置文件进行加密。加密与解密可以使用.NET提供的工具aspnet_regiis.exe,可以在Windows .NET的文件夹中找到它。 该工具只对web.config文件进行修改,如果要加密或解密app.config,可以先将app.config文件改名为web.config,加密或解密后再改回来。 希望本文所述对大家的C#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部