【发布时间】:2021-12-03 12:33:21
【问题描述】:
这是我想加密或隐藏密码值的 MyConfig 文件代码,但我不知道该怎么做。 我已经使用了安全应用配置,但它给了我一个错误或者我做错了什么?
默认密码为 Data#Dat
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="MYdata.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<connectionStrings>
<add name="MYdata.Properties.Settings.Database1ConnectionString"
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="DocumentFormat.OpenXml" publicKeyToken="8fb06cb64d019a17" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.13.1.0" newVersion="2.13.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ExcelNumberFormat" publicKeyToken="23c6f5d73be07eca" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<userSettings>
<MYdata.Properties.Settings>
<setting name="FullName" serializeAs="String">
<value />
</setting>
<setting name="Email" serializeAs="String">
<value />
</setting>
<setting name="Description" serializeAs="String">
<value />
</setting>
<setting name="Password" serializeAs="String">
<value>Data#Data//</value>
</setting>
</MYdata.Properties.Settings>
</userSettings>
</configuration>
【问题讨论】:
-
尽管这似乎是个好主意,但加密该文件中的密码并不会增加任何安全性(因为解密它的程序就在它旁边)
-
这是否意味着我无法加密或隐藏这些配置文件?
-
您的应用程序应该以某种方式读取配置,因此应用程序需要执行此操作所需的所有信息。您可以在启动期间提供信息(例如,向启动应用程序的操作员请求密码),因此除非有人提供“config-opener”密码,否则无法使用应用程序和配置文件本身。但这意味着每一次创业都是一个互动的过程,这可能还可以,但大多不是。
-
否则您可以在应用程序可以访问它的地方(在执行计算机上或应用程序本身内部)隐藏解密密码,这可以提供一些“保密”,但任何有权访问应用程序的人都可以反汇编它并找出您的方法并自行使用此解密方法。这取决于您用户的技能。
标签: c# visual-studio frameworks app-config password-encryption