加密“Microsoft Access数据库”.accdb文件可能会被黑客攻击

时间:2012-08-27 03:41:45

标签: c# database ms-access password-encryption

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

连接字符串是:

  

的connectionString =“提供者= Microsoft.ACE.OLEDB.12.0;数据   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;
    }

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

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

3 个答案:

答案 0 :(得分:3)

不,您的数据不安全,因为任何人都可以使用MSIL反编译器检查您的代码并从您的应用中检索您的连接字符串。在您的流程中,某些人可能会看到密码,无论是内存,反思还是其他内容,都会有一点。

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

现在,尽管如此,你可以通过加密数据库文件和模糊代码来使它们变得更难。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

为什么不将密码放在app.config中并加密app.config。

请参阅here