我无法找到在Android上打开受密码保护的SQLite数据库的方法。由于设备很容易植根,我正在考虑密码保护数据库文件。但是,我没有太多运气找到Android平台内置的任何东西。
答案 0 :(得分:2)
我不认为Android框架支持数据库的密码保护。最好的办法是加密数据。请参阅问题:Android Sqlite Password Encryption
答案 1 :(得分:1)
您可以加密SQLiteDatabases。 Android不支持全数据库加密,因此如果您愿意,您必须自己实现。
如果你想沿着加密路线走下去,根据莫里森的回答,你自己加密敏感信息并将其存储在数据库领域要好得多。
所有这一切 - 你在哪里输入加密功能的密码?您可能需要在应用程序的某个地方使用它!在这种情况下,有人可以反汇编你的代码,然后找到密码,并解密信息(尽管这会有点多工作)。
除非您正在散列信息(单向),否则设备上没有硬件加密(甚至有缺陷),您无法完全安全地在设备上存储任何内容 - 您总是需要解密信息一段时间,密码必须在某个地方的设备上。
如果您希望真正强大的安全性,则将敏感信息存储在服务器上(最好是在非常安全的位置),而不是设备,并且只能通过加密通道(HTTPS)在设备和服务器之间进行通信。您还需要以安全的方式验证设备。但要做到这一点,您需要在设备上存储一些敏感信息,以便使用服务器对设备进行身份验证,除非您强制用户每次都输入密码(如果必须安全,建议使用密码)。 如果信息存储在服务器上,则不一定能阻止不能访问的人(通过查找存储的密码或将用户存储在头部时进行网络钓鱼),但您可以撤消对信息的访问权限。