如何在C#和Sqlite安全性中隐藏数据库密码

时间:2013-02-08 01:25:00

标签: c# database security sqlite passwords

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

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

1 个答案:

答案 0 :(得分:0)

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

OTOH 如果您的唯一目标是保护您的数据库免受技术知识不足的人的随意兴趣,任何数据库加密方案和任何密码存储方案比配置文件中的纯文本更复杂会工作得很好。