编码应用程序配置

本文关键字:配置 应用程序 编码 | 更新日期: 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中。应用程序中的硬代码。

另一个问题是,用户可以在记事本中打开你的应用程序并查看密码,因为它是纯文本,所以请确保将其编码为字节数组或其他使其更加困难的东西。

最后,使用模糊处理程序,这样他们就不会轻易地将你的应用程序转换回代码。

不完美,但如果有人有时间/金钱,他们总是能够解决的。需要让它变得足够难,以至于不值得花时间/金钱。