首页 > 解决方案 > 如何使用 power shell 将 appsettings..json 敏感数据设置为加密/散列形式并在 c# 代码中解密

问题描述

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

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

任何帮助将不胜感激。

标签: .net-corepowershell-3.0password-encryption

解决方案


使用 .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


推荐阅读