【问题标题】:Unable to Zip Android SQLite Database After Encrypting With SQLCipher使用 SQLCipher 加密后无法压缩 Android SQLite 数据库
【发布时间】:2016-01-13 02:55:48
【问题描述】:

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

在与 SQLCipher 集成并加密数据库后,我注意到 APK 大小从 25MB 膨胀到 150MB。原因是 SQLite db 文件不再被压缩。

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

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

通过服务器填充不是一个可行的选择,因为由于记录的数量,它需要很长时间。下一个选项是从服务器下载完全加密的 DB 文件,但对于 140MB 的文件,它仍然会太慢。

需要找到一种方法将加密的数据库与应用一起提供,同时仍将应用大小保持在合理的20-30MB

有什么想法吗?

谢谢。

【问题讨论】:

    标签: android sqlite encryption filesize sqlcipher-android


    【解决方案1】:

    压缩需要在数据中找到模式。 加密会删除所有此类模式。

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

    【讨论】:

      猜你喜欢
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      相关资源
      最近更新 更多