【发布时间】:2014-09-17 17:27:38
【问题描述】:
我想将数据存储在 android 应用上的 sqlite 数据库中。
如果有人找到了手机,他很容易检索到这个数据库并进行探索,所以我想对其进行加密。
我发现https://guardianproject.info/code/sqlcipher/ 是最好的选择,但要对其进行加密,我们需要一个密钥 (SQLiteOpenHelper.getWritableDatabase(“thisismysecret”)
密钥存储在android应用程序的代码中,它仍然不安全吗? (我觉得对一个apk进行逆向工程并不难)
所以我想请用户输入一个用于加密数据的密码。 我也不必打扰用户在每次操作时询问他的密码,所以我在每次启动应用程序时都询问他密码。这意味着我必须将它存储在一个变量中。
所以我的问题是:有没有办法让可能偷手机的黑客查看“实时数据”,例如正在运行的 android 应用程序中存储的变量。我的意思是他可以转储 android 应用程序的实时状态并实时解析对象(例如 Eclipse 逐步调试器)
【问题讨论】:
-
it will be super easy for him to retrieve this database and explore it。可能,是的。超级简单,我不会走那么远。你需要root设备才能开始。 -
我同意,不是很容易,但你可能是对的
标签: java android sqlite encryption cryptography