我正在尝试找出加密配置文件中密码的最佳方法。我们不允许对密码进行硬编码。
这是我必须满足的要求。
我正在使用DOTNET核心,这需要在Windows 10,Windows Server和OSX上运行。
有人能满足此要求吗?
谢谢
答案 0 :(得分:1)
首先,阅读RSA密钥容器。您将让您的运营团队为每个环境创建一个。他们会导出它们,并为您跟踪出口情况。他们还将对ACL进行ACL,以便开发人员可以在较低的环境中访问它们,但只有运维人员才能在较高的环境中进行访问。他们还需要添加ACL,以便可以访问服务器上的进程标识。
这些密钥容器将被导入到服务器以及将执行任何加密工作的任何客户端计算机上。
然后创建一个具有秘密名称(可能是加密时间戳记)和两个字符串的C#类,一个用于明文秘密,一个用于加密版本。使所有内容都可序列化为JSON。标记明文成员,使其不进行序列化。
创建一个小型客户端应用程序(例如,使用WinForms),该应用程序可以读取一组秘密对象,并使用“密钥容器”中的密钥解密任何加密的文本。该应用程序将允许用户粘贴秘密(也许是从KeePass复制的一个秘密)。保存文件后,明文/秘密粘贴的明文将被加密并序列化。纯文本版本被丢弃。
到那时,您拥有一个包含一个或多个加密机密的JSON文本文件,但是这些机密只能由运行带有可访问RSA密钥容器的令牌的进程解密。因此,您可以将文件置于源代码管理中,并依靠您的构建/部署将文件推送到服务器。
很抱歉缺少代码,但是我真的不能复制/粘贴我为老板编写的代码。这里应该有足够的资源来帮助您入门。