0

我刚刚开始使用 C# 和 SQlite 数据库(带有敏感信息)开发一个桌面应用程序,它将安装在本地的任何 PC 上。我想将数据库密码和 sql 命令存储在安全的地方。我对此有一些疑问:

  1. 您认为 SQlite 数据库的安全性如何?我已经读过,通过添加加密,整个文件都被加密了,甚至是标题。你认为它安全到什么程度?
  2. 要存储密码,有很多选择(有些可能是我想到的简单建议): a) 将密码和 SQL 命令存储在 dll 文件中并对其进行模糊处理。但是之前有没有人尝试过破解它或使用 Olly Debugger 搜索过它?b) 在 app.config 文件中加密,自定义加密。但我读过几篇文章,加密连接字符串似乎是可破解的...... c)将密码放入 XML 文件并对其进行加密,或者可能放入序列化文件中(但加密也将存储在源代码,可以折射)。
  3. 如果应用程序已被混淆并且数据库已加密。你认为会有任何性能问题吗?

谢谢你。

4

1 回答 1

0

您需要问自己,您要保护的究竟是什么以及为了什么。您可以在纯客户端安装的应用程序中执行的任何操作,尤其是托管应用程序,都可以很容易地被破解。加密狗更防破解,但如果收益足够大,它不会阻止有经验的破解者,而且它们既昂贵又让用户和分销商感到痛苦。保护您的应用程序的唯一可靠方法是在您自己的服务器上运行它的敏感部分。在您的情况下,数据库可以驻留在您的服务器上,然后您可以提供个人密码、检查 IP 地址、限制查询速率以阻止抓取等。

OTOH,如果您的唯一目标是保护您的数据库免受技术知识很少的人的偶然兴趣,那么任何数据库加密方案和任何比配置文件中的纯文本更复杂的密码存储方案都可以正常工作。

于 2013-02-08T02:08:41.663 回答