0

我正在使用 Visual Studio 2010 和 Microsoft Access 2010 使用 C# 编程语言开发桌面应用程序。

连接字符串是:

connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\KBank.accdb;Persist Security Info=False"

我在 C# 代码中给它密码,如下所示:

 public string GetConnectionStringByName()
    {
        string returnValue = null;
        ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["Info_Bank_Project.Properties.Settings.KBankConnectionString"];
        if (settings != null)
            returnValue = settings.ConnectionString + ";Jet OLEDB:Database Password=blablabla";
        return returnValue;
    }

我只在一个简单的“选择”查询中使用了项目中的数据库。

所以,关于安全问题.. 任何人都可以解密访问数据库或查看密码吗?你有什么建议让任何人都很难看到数据库数据

4

3 回答 3

3

这是一个小旧线程,我在这个问题上的经验可能会对某人有所帮助。您可以使用位于其中的强密码创建 C++ DLL,然后从 C# 应用程序调用它以使用数据库文件名加密/解密方法。

于 2013-12-20T16:28:21.090 回答
3

不,您的数据不安全,因为任何人都可以使用 MSIL 反编译器检查您的代码并从您的应用程序中检索您的连接字符串。在您的过程中的某个时刻,有人可能会看到该密码,无论是在内存中、在反射中还是在其他东西中。

如果您的数据由您以外的人拥有,而不是在您的服务器上,那么您可以假设您不再控制该数据。

现在,尽管如此,您可以通过加密数据库文件和混淆您的代码来使他们更难获得。

于 2012-08-27T03:57:29.137 回答
1

为什么不把密码放在你的 app.config 中并加密 app.config。

这里

于 2012-08-27T04:13:36.840 回答