0

我正在尝试使用行键数据以避免密钥派生(根据SQLCipher 文档):

this.myDb = SQLiteDatabase.openOrCreateDatabase(databaseFile, "", null);
this.myDb.rawExecSQL("PRAGMA key = \"x'2DD29CA851E7B56E4697B0E1F08507293D761A05CE4D1B628663F411A8086D99'\"");
Cursor myCursor = this.myDb.rawQuery(query, params);

当我强制应用程序停止时,访问数据变得不可能。

如果不使用 SQLCipher,则不会发生此行为。即使在强制应用程序停止之后,数据库也是可读的。

我做错了什么?

提前致谢,

4

3 回答 3

0

对于那些面临同样问题的人,这里给出了一个解决方案:

https://github.com/sqlcipher/android-database-sqlcipher/issues/62#issuecomment-8090646

于 2012-08-28T17:25:22.937 回答
0

我的理解是,除了应用程序之外,数据库无法访问 - 这是为了防止其他应用程序访问他们不应该访问的数据

于 2012-08-26T10:32:53.093 回答
0

您需要向我们展示更多代码,以便我们能够为您提供正确的答案。

你的电话等于

SQLiteDatabase.openDataBase(databaseFile.getPath(),"", CREATE_IF_NECESSARY, null);

当您强制关闭您的应用程序时,一切都会恢复,包括所有静态参数。因此,之前运行的应用程序唯一能影响的是您保存在数据库中的数据。所以试着看那个方向。

于 2012-08-26T11:07:17.337 回答