gpt4 book ai didi

c# - 加密 App.Config 部分并部署到多台机器

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:12 24 4
gpt4 key购买 nike

我已经阅读了大量资料,并且正在尝试加密 WPF App.Config 文件中的一个部分。我没有使用默认部分,而是使用自定义部分。我有一个应用程序,用户在其中指定一个 .config 文件,该应用程序读取该文件以更新 key 。

为了解密和加密我的文件部分,我使用以下代码:

var configMap = new ExeConfigurationFileMap { ExeConfigFilename = this.FileName };
var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
var configSection = config.GetSection(Section);

if (!configSection.SectionInformation.IsProtected)
if (!configSection.ElementInformation.IsLocked)
{
configSection.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
configSection.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}

并解密:

var configMap = new ExeConfigurationFileMap { ExeConfigFilename = this.FileName };
var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
var configSection = config.GetSection(Section);

if (configSection.SectionInformation.IsProtected)
{
configSection.SectionInformation.UnprotectSection();
configSection.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}

我面临的问题是,如果我有一个在机器 A 上加密的文件,并将该文件放在机器 B 上,我无法解密 .config 文件,因为加密是在机器 A 上完成的。

我已尝试按照推荐使用 aspnet_regiis 创建和导出 key 容器 (link) 和 (link) 的几篇文章中的步骤进行操作,但也许我做错了什么。我的猜测是,因为我没有使用 aspnet_regiis 来加密文件或解密文件,所以我被卡住了。有没有办法在不使用 aspnet_regiis 工具和命令行的情况下执行此操作?

很多关于 web.config 与 app.config 的信息更多。同样,这是针对使用 MVVM 的 C#/WPF 应用程序。

我也在研究自定义加密(自定义数据提供程序),但我看到的所有示例都是针对 web.config ( link ) 的。

最佳答案

自己寻找答案。但是,对于您的情况,如果我没记错的话,您必须执行第 2 步——导出 RSA key 。

https://magenic.com/thinking/encrypting-configuration-sections-in-net

关于c# - 加密 App.Config 部分并部署到多台机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46575287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com