1

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

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

我该如何保护这些数据?

我曾考虑将数据库嵌入到我的程序集中,但看起来它(或曾经)不可能。尽管如此,我还是尝试嵌入它,但我不知道如何修改我的连接字符串。

非常感谢任何帮助!

4

1 回答 1

2

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

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

嵌入数据库也无济于事,因为嵌入的资源无法在运行时更新,而且它们可以很容易地从程序集中提取,除非您也加密整个程序集(有工具可以做到这一点)。

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

于 2013-01-23T14:13:41.313 回答