这篇文章给大家分享的是有关C#中App.config和Web.config加密的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了峨山县免费建站欢迎大家使用!打开cmd,进入vs安装目录C:\Windows\Microsoft.NET\Framework64\v4.0.30319
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
如果是Web.config就直接加密,是App.config就先改为Web.config才可以进行加密
aspnet_regiis -pef "节点" "项目路径"
例如:
需要加密的App.config数据库连接字符串为
<connectionStrings> <add name="connStr" connectionString="Data Source=.;Initial Catalog=testDB;User ID=sa;Password=123456" /> </connectionStrings>
加密命令为
aspnet_regiis -pef "connectionStrings" "Web.config所在目录"
如加密失败
解决方案:
创建一个可导出的rsa密钥容器,命名为Key
aspnet_regiis -pc "Key" -exp
将Web.cofig/App.config的configuration增加属性值xmlns,即改为
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
将数据库连接字符串改为以下:
<configProtectedData> <providers> <clear /> <add name="KeyProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="Key" useMachineContainer="true"/> </providers> </configProtectedData> <connectionStrings> <add name="connStr" connectionString="Data Source=.;Initial Catalog=testDB;User ID=sa;Password=123456;" providerName="System.Data.SqlClient" /> </connectionStrings>
开始对配置文件进行加密
aspnet_regiis -pef "connectionStrings" "Web.config所在目录" -prov "KeyProvider"
注意:vs会提示是否修改,选择全是
解密配置文件
aspnet_regiis -pdf "connectionStrings" "Web.config所在目录"
如果是App.config改成的Web.config,加密成功之后再改为App.config,并删除configuration的属性xmlns值
未加密的Web.config/App.config文件内容:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <connectionStrings> <add name="connStr" connectionString="Data Source=.;Initial Catalog=testDB;User ID=sa;Password=123456" /> </connectionStrings> </configuration>
修改为加密后的Web.config/App.config文件内容:
<?xml version="1.0" encoding="utf-8" ?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <configProtectedData> <providers> <clear /> <add name="KeyProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="Key" useMachineContainer="true"/> </providers> </configProtectedData> <connectionStrings> <add name="connStr" connectionString="Data Source=.;Initial Catalog=testDB;User ID=sa;Password=123456;" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>
加密后的Web.config/App.config文件内容:
<?xml version="1.0" encoding="utf-8" ?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <configProtectedData> <providers> <clear /> <add name="KeyProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="Key" useMachineContainer="true"/> </providers> </configProtectedData> <connectionStrings configProtectionProvider="KeyProvider"> <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>lSLu2RVnlfr5om5MpBuqyhBETF6dI/glZ3zlfOQvzj+l1YmsOcfGVC1LgrDFcPLEbF/r1IZZYVnQuesz3AeVUkpNCG2OfMWDeaPULtJ5Ay24SYnBR4FNtQQSf1pijelXRGE8pzH7s49RLsKWQuwVTyMrOUoIMcmD4xIPmN/cqpQ=</CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>deXEhu/mqe+WkD51qXhi9jwBhEurU6EQXBQINOGOyDgpw/W4xTpi3DtTDcEzJXbaHvyKaXLfkPxxljce07ANtN7VXRfDov0Olsq/3+hkYqVXRI5A80XVkOKh3CQaVWx/GJC7JBbbRlKXJvS93M+OQWGKpW0twcZlL1ns97g5w8QstGN6vszAiZw1z6gKXlsrMf9224ExGq+dGJS9BSU+mxaKkd9EAVELMtWv2r7jIXsEneggDR49Mtdu91j1dsDj6am3NcaHmRQ=</CipherValue> </CipherData> </EncryptedData> </connectionStrings> </configuration>
导出密钥容器
spnet_regiis -px "Key" "d:\Key.xml"
注意:加上-pri参数为导出公钥+私钥
导入密钥容器
aspnet_regiis -pi "Key" "d:\Key.xml"
删除密钥容器
aspnet_regiis -pz "Key"
注意:删除密钥程序会报错
感谢各位的阅读!关于“C#中App.config和Web.config加密的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:C#中App.config和Web.config加密的示例分析-创新互联
URL标题:https://www.cdcxhl.com/article18/depjdp.html
成都网站建设公司_创新互联,为您提供企业网站制作、搜索引擎优化、关键词优化、静态网站、面包屑导航、微信公众号
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联