使用 SQLCipher 加密后无法压缩 Android SQLite 数据库

2023-12-24

我随我的应用程序提供了一个只读数据库,将其包含在 Assets/Database 目录中。所有数据均已预先填充。

集成后SQLCipher并对数据库进行加密,我注意到 APK 大小从25MB 至 150MB。原因是SQLitedb 文件不再被压缩。

Android Studio 通常会压缩资源,但在数据库文件加密后,压缩文件似乎没有效果。我尝试使用常规 Zip 和 7Zip 在外部进行测试,结果没有什么区别,压缩文件的大小与原始文件的大小相同。

未加密的数据库约为 130MB,压缩后仅需要 18MB,因为其中大部分是文本,字符串压缩得很好。压缩加密的数据库文件在大小上没有区别。

通过服务器填充不是一个可行的选择,因为由于记录数量的原因,它会花费很长时间。下一个选择是从服务器下载完全加密的数据库文件,但对于 140MB 的文件来说,速度仍然太慢。

需要找到一种方法来随应用程序发送加密数据库,同时仍将应用程序大小保持在合理范围内20-30MB.

有任何想法吗?

Thanks.


压缩需要找到数据中的模式。 加密消除了所有此类模式。

您需要在加密之前进行压缩。 这对于 SQLCipher 来说是不可能的;您必须发送压缩和加密的 .sql 文件,然后在新的加密数据库上执行它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SQLCipher 加密后无法压缩 Android SQLite 数据库 的相关文章

随机推荐