你可以看看我的Moonrise.StandardUtils.NetStd NuGet 包。 Settings 类具有透明的加密/解密功能,并且是在任何 .Net 应用程序中访问 JSON 设置文件(无论是应用程序还是用户)的一种更简单的方法。
Settings.Application.SettingsEncryptor = new DpApiSettingsEncryptor(DpApiSettingsEncryptor.ProtectionScope.Machine);
MyConfigClass config;
Settings.Application.Read("Configuration", ref config)
之前已加密的任何单个或一组设置都将被解密。您可以使用以下命令加密设置;
Settings.Application.Write("ContainerStartup:FileProviders:BrandingConfig", secretValue, true);
或者使用捆绑到 Moonrise.Microsoft.EncryptedJsonConfiguration 或 Moonrise.Samples NuGet 包中的 EncryptAppSettings.exe - 您可以在包文件/目录中找到它 - 这是一种获取 .exe 的方法。
Moonrise.Microsoft.EncryptedJsonConfiguration 允许您将 IConfigurationBuilder 与 .AddEncyptedJsonFile(...) 一起使用,然后透明地解密使用 EncryptAppSettings.exe 加密的任何设置。
这是部分加密的 appSettings.json 的片段
"ContainerStartup": {
"FileProviders": {
"BrandingConfig": "[{ENC]{AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAsevacb5DdkaxvzOPPkLrdwQAAAACAAAAAAAQZgAAAAEAACAAAADITnvKp+Lnb5n6kPK7WyYuWFQLnbvbkOvgHBLBdIw2MAAAAAAOgAAAAAIAACAAAADqJZ0YUGC+jOEr4/6hgQ+8UdZ1ssbiEXXCjdhSV3teZ3AAAAAW4d8Z38JYNM1Dw45KquZYK+bTszYp/1wXt+LiYpiy2q88sOpQr5VpDFatgWar1aOePXA52RC6eZH1HFrYijqWTSEiffBqWzWZPPTXw1wkUVB5MLIjOq4bu33h+4Z23Vy+XaFsf6IFVl4ccM4fHpsRQAAAAAG5OP+nJQxzH3A7n3gnh8d2eAOFgLWzYCDgQon7NXHeEJcZezgxT+0npvIQ/kcYb1Xpwt7FiNtyJ2HZswL8MSg=]{ENC[{",
"SearchingNotification": true,
"UseBranding": false,
"UseLocalModule": true,
"UseLocalModuleEmbedded": true,
"UseParentModules": true,
"UseParentModulesEmbedded": false
},