我的桌面Java应用程序使用了几个只读的SQLite数据库,我希望人们无法打开并查看。通常,这可以通过加密来完成,但我目前正在使用sqlite4java库,它不支持加密,也不容易使用其他SQLite加密库(例如SEE)。
我正在尝试做的是让“休闲黑客”尽可能地找到其中一个数据库文件并打开它们。例如,有人抛出了将它们粘贴在受密码保护的ZIP文件中的想法,然后使用类似于建议here的库来动态解密它作为InputStream或临时文件。
这会是值得做的吗?
编辑:我意识到这不会是完全安全的,而且一个专门的黑客可能仍然能够找到密钥并对其进行解密(这似乎是任何此类程序的漏洞)。答案 0 :(得分:3)
“我想要做的就是尽可能地让它变得困难。”
你可能只是为了自己让自己。。
普通用户不会打开应用程序二进制文件。打开应用程序二进制文件的人可以使用工具查找加密密钥。
如果您想通过默默无闻来参与安全性,只需将数据库文件命名为“commons-io-3.2.1.jar”而不是“mydb.sqlite3”。没有麻烦,仍然会抛弃“随意的黑客”。
答案 1 :(得分:0)
您可以选择不使用应用程序APK发送密码,而不是密码保护您的SQLite数据库,而不是首次运行时下载内容,这样您就不必加密和解密,并且您的APK更轻。
另外请记住,您的数据库仍然可能被强烈的黑客入侵。