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



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

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

谢谢。

你需要问问自己,你想要保护的到底是什么,是为了什么。在纯客户端安装的应用程序中所能做的任何事情,尤其是托管应用程序,都很容易被破解。加密狗更防破解,但如果回报足够大,就不会阻止有经验的破解者,而且它们既昂贵,也让用户和分销商头疼。保护应用程序的唯一可靠方法是在自己的服务器上运行应用程序的敏感部分。在你的情况下,数据库可以位于你的服务器上,然后你可以提供个人密码,检查IP地址,限制查询率以阻止抓取等。

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

最新更新