encryptionSQLite数据库,而不增加应用程序的大小?

有没有什么办法来encryption我的Android应用程序的数据库与更less的应用程序大小的增加? 我已经尝试过SQLcipher,但它正在增加10MB的应用程序的大小,这是巨大的。

Solutions Collecting From Web of "encryptionSQLite数据库,而不增加应用程序的大小?"

使用SqlCipher时,APK中10MB的增加可以通过为每个您想要定位的Android架构发布一个单独的APK来避免。

由于性能和跨平台支持的原因,SqlCipher在C代码中实现,并使用Android NDK构build为本机Android .so库。 为其支持的每个Android体系结构构build一个不同的库,在SqlCipher的情况下是:

  • armeabi
  • armeabi-V7A
  • 86

为了最大限度地减less由SqlCipher引起的文件大小增加,你可以构build一个独立的APK,只包括与你的用户设备相匹配的体系结构。 查看Android开发者网站, 了解如何发布针对不同设备configuration的多个APK 。

在我的testing过程中,这个技术将我的APK从10MB减less到了4MB。

有关更多信息,本文详细介绍如何在Android上实现SqlCipher,并解释文件大小的增加。

Java / Android应用程序目前广泛使用两种主要的数据库。 在这种情况下, SqlLiteH2数据库 。 根据SQLite vs H2 DB,我们可以看到两个数据库之间的一组差异function。 例如,两个数据库都具有ACID特性事务参照完整性Unicode表示 。 但是,只有H2数据库具有encryption数据暴力保护本地networkingencryption

这种encryption机制使用AESalgorithm来encryption数据库文件。 由于H2数据库使用AES来encryption数据文件,通常我们可以推断,它可以比SqlLite 很多,因为en [de] cryptparsingAES所使用的数据文件。 所以,当使用H2数据库时,en [de] crypt可以在效率方面增加开销成本。

总之,当encryption数据很重要时,H2数据库可以成为小型项目的有用替代品。 另外,需要注意的是,更多的实验(经验性基准)对涉及展位数据库的性能问题做出结论很重要。 请注意, 轻慢是主观的,因为我们需要实验评估来更准确地比较两个(或其他)数据库。

一些有用的参考使用:

  • H2 vs SqlLite
  • H2数据库
  • 文件encryption

这取决于你的实际需求,但是一个简单的方法是在你写入数据库或从数据库读取数据之前,对数据本身进行encryption/解密。 这会对apk大小产生最小的影响,但是您需要更多的努力。

如果需要很高的安全性,只要接受10MB,然后继续生活:-)