如何使用 power shell 将 appsettings..json 敏感数据设置为 encrypted/hashed 形式并在 c# 代码中解密

How to set appsettings..json sensitive data into encrypted/hashed form using power shell and decrypt in c# code

我在保护以纯文本形式存储在 apsettings.json 中的敏感信息时遇到问题。 目前,我的应用程序在 .net 核心中,从 appsettings.json 中读取那些以纯文本格式存储的敏感配置。 例如 { “用户名”:ABC, “密码”:xyz }

我想让它们 encrypted/secure/masked 以便任何未经授权的用户都无法读取该数据。其他方法可以在部署时加密 appsettings.json 并在使用配置时在内存中解密。如何在部署时加密 appsettings.json 并在内存中解密。

如有任何帮助,我们将不胜感激。

对于 .net 核心,您可以通过使用 Package EncryptedJsonConfiguration 使用加密 JSON。为了添加您使用 NuGet 管理器或 PowerShall 安装的包:

Install-Package Miqo.EncryptedJsonConfiguration

然后在你的 Program.cs :

var key = Convert.FromBase64String(Environment.GetEnvironmentVariable("SECRET_SAUCE"));
Host.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((hostingContext, config) =>
        {
            config.AddEncryptedJsonFile("settings.ejson", key);
        })
        ...

然后在您的 启动文件中:

services.AddJsonEncryptedSettings<AppSettings>(_configuration);

有关更多信息,您应该查看:https://github.com/miqoas/Miqo.EncryptedJsonConfiguration

最推荐的创建加密文件的方法是使用Kizuna命令行工具。 阅读更多:https://github.com/miqoas/Kizuna