繁体   English   中英

Android上的解密数据库的临时存储

[英]Temporary Storage for Decrypted Database on Android

我一直在研究我的一个宠物项目,该项目依赖于SQLite数据库来存储信息。 最近,我决定要对应用程序进行密码保护,并希望对数据库进行加密。 到目前为止,还没有重大问题。 在我的设计中,我一直试图将重点放在最大可能的安全性上。 是的,我知道最大的安全性是毫无价值的,因为考虑到一切(我在说盐和密文;密码在用户的大脑中)都存储在一个设备上,任何知道自己在做什么的人都可以破坏它(如果拥有)设备。 那为什么要打扰呢? 因为我可以。

因此,为此,我一直在考虑在应用程序运行时将解密版本的数据库存储在何处。 在线上最常用的临时存储建议是SD卡。 这对我来说不太好,因为如果应用程序异常终止(使用任务管理器输入过分热心的用户)或永不终止,SD卡上的数据将继续存在。

最近,我一直在想将整个内容存储在内存中的想法,但这似乎是非常糟糕的做法。 测试设备上的数据库绝对很小(小于100K,其中包含大量测试数据),但它仍然给我带来了错误的感觉,那就是用户可能在野外拥有大型数据库。 我非常清楚这样一个事实,只要有人说“用户永远不会做/拥有它”,就会有人打破限制。

因此,以问题的形式提出:在Android设备上临时存储解密的数据库的最佳位置在哪里? 最好是在应用程序执行之间易变的地方,但是,在这一点上,我愿意提出建议。

提前致谢。

好吧,如果您使用sqlite和标准的Android SQLite数据库助手,则该数据库必须位于/ data / data // databases中。 多数民众赞成在唯一的地方,默认类将读取它。

或者,您可以将其存储在SDCard上并编写自定义数据库帮助器。 正如您提到的,如果数据安全,显然有理由不这样做。

我认为我建议用代码做一些混淆处理您的数据库的方法,也许是通过向数据库提供需要解码功能来解释的数据。 除此之外,我认为远程数据库将是保护数据的唯一可行机制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM