【发布时间】:2013-04-16 04:02:01
【问题描述】:
我的桌面 Java 应用程序使用几个只读 SQLite 数据库,我希望人们无法打开和查看这些数据库。通常,这可能通过加密来完成,但我目前使用的是sqlite4java 库,它不支持加密,也不容易允许使用其他 SQLite 加密库(例如 SEE)。
我想要做的是让“临时黑客”尽可能难以找到这些数据库文件之一并打开它们。例如,有人放弃了将它们粘贴在受密码保护的 ZIP 文件中的想法,然后使用类似 here 建议的库将其动态解密为 InputStream 或临时文件。
这是值得做的事情吗?
编辑:我意识到这不会是完全安全的,并且足够敬业的黑客可能仍然能够找到密钥并对其进行解密(这似乎是任何此类程序的漏洞)。
【问题讨论】:
-
程序从哪里得到密码?它与数据库一起提供吗?
-
数据库有多大?你能把它们完全加载到内存中吗?
-
stackoverflow.com/questions/9314844/… 的重复(没有答案),也相关(但没有 Java 连接):stackoverflow.com/questions/2571620/…
-
@supericy 据我所知,这些都行不通,因为我使用的是 sqlite4java。