【发布时间】:2012-07-24 07:48:02
【问题描述】:
我一直在阅读、浏览、搜索这方面的内容,我在 stackoverflow 上来回切换了很多次,我设法尽可能地缩小我的问题范围。
我唯一不明白的是,如何充分利用内存中的 SQLite 数据库。
这是我的情况 - 我有一个加密的 SQLite 数据库,我在加载我的应用程序期间对其进行解密(这部分肯定有效)。我与数据库交互的类肯定适用于普通数据库。 因此,简而言之,从手机内部存储器加载的普通数据库完美无缺,但我不确定如何或在何处将解密的数据库存储在内存中,以便将其解释为普通数据库。
我想我应该在super(context, null, null, 3); 中输入null 而不是名称,并在SQLiteDatabase.openDatabase() 中使用:memory: 而不是路径,但我仍然不完全理解。它说它找不到android_metadata 表,但我确定数据库应该是这样的。
希望我对此很清楚:)
【问题讨论】:
-
试过SQLCipher?
-
我没有考虑太多。我第一次研究时有点没发现它,所以我开发了自己的两步“加密”。谢谢你的链接,我去看看。你能告诉我 SQLCipher 的安全性如何,它会压缩数据吗?
-
256 位 AES 加密是可以的 - 我敢打赌,你不可能自己做出更好的实施。