C#为配置文件加密的实现方法
2021-01-22 05:13
标签:0kb out image ice gty rda csdn bug public 利用ASP.NET注册工具ASPnet_regiis.exe注册IIS,该工具的名称为aspnet_regiis.exe,在32位机上,该工具存在于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,在64位机中“Framework”的名字为“Framework64”,不同的IIS版本“v2.0.50727”也可能有所改变。 当要用Web Service或Web项目调用一些外围设备时,使用该工具显得尤为重要,使用方法为: 进入上述的aspnet_regiis.exe所在的目录下,注意,使用DOS进入,在运行中输入“cmd”,进入DOS, 输入“cd \”退回根目录,输入“cd WINDOWS\Microsoft.NET\Framework\v2.0.50727”,进入目录,若不是这个路径可用“dir 文件夹名”查找可能的文件夹。 进入后输入“aspnet_regiis -i”进行注册即可 这篇文章主要介绍了C#为配置文件加密的实现方法,可实现对配置文件中的敏感信息进行加密,非常具有实用价值,需要的朋友可以参考下: 本文实例讲述了C#为配置文件加密的实现方法,分享给大家供大家参考。具体实现方法如下: 一般来说,在web.config或app.config文件里我们经常会存储一些敏感信息,比如connectionStrings或者appSettings,比如像下面的文件。 namespace WebConfigEncryptTest 一、加密文件可以使用的Provider .NET为我们提供了一个工具aspnet_regiis.exe来对web.config文件中的敏感信息进行加密(app.config文件可以先改名为web.config,加密后再改回app.config)。你可以使用两个provider中的一个来进行加密: System.Configuration.DPAPIProtectedConfigurationProvider:在System.Configuration.dll中,使用Windows DPAPI(Data Protection API)来进行加密,密钥存在Windows Local Security Authority(LSA)中。 注意:当使用DPAPIProtectedConfigurationProvider时,加密文件所使用的帐号需要与运行web application的帐号相同,否则web application无法解密加密的内容。 二、加密文件的命令 加密web.config文件可以使用: Encrypt the configuration section. Optional arguments: [-prov provider] Use this provider to encrypt. 比如运行下面的命令就会分别对connectionStrings和appSettings中的信息进行加密: aspnet_regiis.exe -pef "appSettings" "C:\myweb\HelloService" 加密后的web.config文件变成: 其中RSAProtectedConfigurationProvider是默认的缺省provider,如果想使用DPAPIProtectedConfigurationProvider,可以用-prov参数指明: aspnet_regiis.exe -pef "connectionStrings" "C:\myweb\HelloService" -prov "DataProtectionConfigurationProvider" aspnet_regiis.exe -pef "appSettings" "C:\myweb\HelloService" -prov "DataProtectionConfigurationProvider" 加密配置文件后,源程序不需要做任何改动。如果要修改或添加新的配置信息,需要先解密配置文件。不论使用哪种Provider,都只能在进行加密的计算机上对配置文件进行解密。 三、解密文件的命令 解密的命令如下(解密命令不需要-prov参数): Decrypt the configuration section. aspnet_regiis.exe -pdf "connectionStrings" "C:\myweb\HelloService" aspnet_regiis.exe -pdf "appSettings" "C:\myweb\HelloService" 四、总结 配置文件中经常会有用户名密码的敏感信息,为了防止该信息泄露,需要对配置文件进行加密。加密与解密可以使用.NET提供的工具aspnet_regiis.exe,可以在Windows .NET的文件夹中找到它。 该工具只对web.config文件进行修改,如果要加密或解密app.config,可以先将app.config文件改名为web.config,加密或解密后再改回来。 C#为配置文件加密的实现方法 标签:0kb out image ice gty rda csdn bug public 原文地址:https://www.cnblogs.com/ZGQ-VIP/p/12089565.html
using System.Configuration;
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string user = ConfigurationManager.AppSettings.Get("User");
string password = ConfigurationManager.AppSettings.Get("Password");
string connectionString = ConfigurationManager.ConnectionStrings["MyNwConnectionString"].ConnectionString;
}
}
}
System.Configuration.RSAProtectedConfigurationProvider:在System.Configuration.dll中,使用RSA算法来进行加密(RSA算法是非对称加密,具体可参见前面一篇文章C#对称加密与非对称加密),公钥存放在config文件当中,只有加密的计算机有密钥。RSAProtectedConfigurationProvider通常是默认的缺省provider。