在预填充的 SQLite 数据库上使用 SQLCipher/Encryption

Use SQLCipher/Encryption on a prepopulated SQLite database

我一直在寻找一种方法来在包含超过一百万个条目的预填充数据库上实施 SQLCipher。过去三个月是我完全致力于项目数据库的时间,现在它已经完成,这让我遇到了一个问题。

我知道我的应用程序的数据库将在一周左右的时间内被复制,并且复制数据库非常容易(只需使用 WinRAR 打开 apk)。在印度,没有人关心版权,所以这没有用。

基本上我想保护我的应用程序的数据库不被复制,记住应用程序应该离线工作(据说没有 PHP/SQL 服务器)。

我已经检查了 GitHub/Google,我唯一找到的是 SQLCipher by Zetetic. Very same thing on GitHub - Here

此外,现在可以导入以下库:net.zetetic:android-database-sqlcipher:3.5.2@aar 并可以使用它来保护数据库,但它适用于应用程序创建的数据库,而不适用于预填充的数据库。 (lib 取自 this 对 SO 的回答)。

-> 现在,对我来说,百万美元的问题是 无论如何,我可以通过密码保护或加密我的数据库,而无需将数据库放在有服务器吗?

P.S。 -> 我想让我的应用程序离线工作,而且,我只是一名学生,至少现在,负担不起 Zetetic 的付费服务。

编辑 - 我查看了一些存储数据库的 google 应用程序的代码以寻求帮助,但它们只是使用 .out 文件(可以使用 Word/Text 编辑器)压缩在 .gz 文件中,这不是我应该使用的东西。

implement SQLCipher on my prepopulated database

这毫无意义。任何想要的人都可以获取加密的数据库,从您的应用程序中获取加密密钥,然后解密数据库。

I want to protect my app's database from copying

不要放在设备上。

keeping in mind that app should work offline

根据您应用的性质,您可以缓存一些数据供离线使用,以减少离线时的功能。

一个更简单的解决方案是不用担心数据库可能被复制。套用 Tim O'Reilly 的话,您的问题不是安全性而是晦涩难懂。