C#配置文件的加密密码

Encrypting password for C# configuration file

我正在尝试找出对配置文件中的密码进行加密的最佳方法。我们不允许对密码进行硬编码。

这是我必须满足的要求。

我正在使用 DOTNET 核心,这需要在 windows 10、windows 服务器和 OSX 上运行。

有没有人有什么好的方法来满足这个要求?

谢谢

首先,阅读 RSA 密钥容器。您将让您的操作组为您的每个环境创建一个。他们将 出口 它们并为您跟踪出口情况。他们还将对它们进行 ACL,以便开发人员可以在较低的环境中访问它们,但只有运维人员才能在较高的环境中访问它们。他们还需要添加一个 ACL,以便您服务器上的进程身份可以访问。

这些密钥容器将被导入到服务器,以及任何将执行任何加密工作的客户端机器上。

然后创建一个 C# class,其中包含机密名称(可能是加密时间戳)和两个字符串,一个用于明文机密,一个用于加密版本。使一切 JSON 可序列化。标记明文成员使其不序列化。

创建一个小型客户端应用程序(例如,使用 WinForms),它可以读取机密对象集合,使用密钥容器中的密钥解密任何加密文本。该应用程序将允许用户粘贴一个秘密(可能是从 KeePass 复制的)。保存文件时,secret中的clear text/pasted被加密序列化出来。明文版扔掉

此时,您有一个 JSON 包含一个或多个加密机密的文本文件,但这些机密只能由进程 运行 有权访问 RSA 密钥的令牌解密容器。因此,您可以将文件置于源代码管理中,并依靠您的 build/deploy 将文件推送到您的服务器。

抱歉缺少代码,但我真的不会 copy/paste 为雇主编写的代码。此处应该足以让您入门。