.net-core - 如何使用 power shell 将 appsettings..json 敏感数据设置为加密/散列形式并在 c# 代码中解密
问题描述
我在保护以纯文本形式存储在 apsettings.json 中的敏感信息时遇到问题。目前,我的应用程序位于 .net 核心中,从 appsettings.json 中读取那些以纯文本格式存储的敏感配置。例如 {“用户名”:ABC,“密码”:xyz }
我想让它们加密/安全/屏蔽,以便任何未经授权的用户都无法读取该数据。其他方式可以在部署时加密 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
推荐阅读
- r - 合作伙伴之间的重复互动(二元组)
- javascript - 找到最小初始值,使得总和始终为 1 或更大
- api - API 无法识别从 .pfx 文件中提取的密钥和证书
- java - 使用 spring-data-jdbc 保存具有一对多关系的实体返回空列表
- javascript - 为什么我的事件变量在这个 ajax 调用中未定义?
- r - linfun 函数问题(未使用的参数)
- javascript - 阿波罗服务器+续集错误不可为空的字段
- asp.net-core - 包 Microsoft.AspNetCore.Authentication.JwtBearer 5.0.0 与 netcoreapp3.1 不兼容,但它的目标是 net 5.0
- javascript - 表达如何将值从 .js 承诺传递到 .ejs 视图
- android - Android recycleview 将参数传递给同一活动中的另一个片段