编码应用程序配置
本文关键字:配置 应用程序 编码 | 更新日期: 2023-09-27 17:58:01
我制作了一个连接到我的sql数据库的应用程序。我想把这个应用程序发送给一些用户,让他们使用SELECT命令从数据库中获取值。
我想隐藏数据库的凭据。我搜索了一些关于编码数据的信息,找到了一个关于它的教程
以下是链接:http://www.aspsnippets.com/Articles/Encrypt-and-Decrypt-Connection-String-in-AppConfig-file.aspx
我做的每件事都一样。此外,我添加了System.Configuration
参考。
目前,唯一存在的错误是:The name 'Configurationmanager' does not exist in the current context
。我发现的这个问题的每一个解决方案都与添加Configuration Manager
参考有关。正如我所说,我已经补充了这一点。
你知道吗?默认情况下,我的App.Config
文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<add name="Settings" value="---MY LOGIN AND PASSWORD---" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
起初我把这个(根据教程)改成这样:
<configuration>
<connectionStrings>
<add name="Settings" connectionString="---MY LOGIN AND PASSWORD---" />
</connectionStrings>
</configuration>
现在的应用程序配置是:(我改变了一些随机字符)
<configuration>
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>BFdcvx34Vw/TRVHRXMfDFfdmdfdksfoTC0JaLZZDY2lF/SWyr5BYS1mE3i8czp1izQ20bQC1/3pR3uLtD5yFsdfmdsfkw86S5QG1ctinXQ7gd+rrcuF1/Xws5ixbtvOPX/Itls/dMqfZcTJ9PY=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>qHGxbtVbAuNeC163xJc0zGja5LMv34GQBTFPS3fywLCF9YGr1fA+FslaNQBavz90JQbimEJaEzIIHYyyKASOBkdaHDTPDSffsdfxzLDV3gN4T2EtDWTk1zhyY7VASD34wqedNXNvn6jIMgJZAyJMlfXASddasdasfI0qGoJNj8Gq7hhEO0QBugXEVl/zTmHqWYfMDsWI5IgIvRLePhOrNrmTAFldASDasda4ewaASe8Z6nbdxASDas231MASNEUE6RK7YJ</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
</configuration>
必须确保代码中引用了类System.ConfigurationManager。
请参阅:https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager(v=vs.110).aspx
加密连接字符串并将其放在app.config中。Cypher/salt需要隐藏,并且永远不应该在app.config中。应用程序中的硬代码。
另一个问题是,用户可以在记事本中打开你的应用程序并查看密码,因为它是纯文本,所以请确保将其编码为字节数组或其他使其更加困难的东西。
最后,使用模糊处理程序,这样他们就不会轻易地将你的应用程序转换回代码。
不完美,但如果有人有时间/金钱,他们总是能够解决的。需要让它变得足够难,以至于不值得花时间/金钱。