如何防止用户看到我正在使用的数据库文件?

时间:2013-01-23 14:01:24

标签: database visual-studio-2010 security password-protection

我正在编写一个依赖于MS Access * .accdb 数据库的VB.NET桌面应用程序。当我的应用程序安装在最终用户计算机上时,数据库文件必须与程序集位于同一目录中。

我担心的是,我希望数据保持机密,并且访问数据库的密码保护很容易被破坏。

我如何保护这些数据?

我考虑过将数据库嵌入到我的程序集中,但它看起来像是(或者是)not possible。我尝试embed,但我无法弄清楚如何修改我的连接字符串。

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:2)

Access不是机密数据的适当存储介质。正如你所说,密码机制很容易被破坏。

您可以将所有机密数据以加密形式存储在数据库中,但您仍需要将加密密钥存储在同一系统上,以便应用程序读取数据。您的应用程序需要进行加密/解密。至少在打开文件并猜到密码时,内容仍然难以阅读。任何具有足够的.NET和安全知识的人都可以解密数据,因为您必须将加密密钥存储在应用程序可以检索它的位置,以便加密/解密数据。

嵌入数据库也无济于事,因为嵌入式资源无法在运行时更新,而且除非您加密整个程序集,否则可以从程序集中轻松提取它们(有些工具可以做到这一点)。 / p>

底线:当机密性是关键时,请不要存储他/她的系统上无法/不可能看到的数据。或者不要将加密密钥存储在该人的系统上。