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

私の理解では、データベースはアプリ以外ではアクセスできません。これは、他のアプリがアクセスしてはならないデータにアクセスできないようにするためです。

于 2012-08-26T10:32:53.093 に答える
0

私たちがあなたに正しい答えを与えることができるように、あなたは私たちにもっと多くのコードを示す必要があります。

あなたの呼び出しは等しい

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

アプリケーションを強制終了すると、すべての静的パラメータを含むすべてが復元されます。したがって、アプリケーションの以前の実行から影響を受ける可能性があるのは、データベースに保存しているデータだけです。ですから、その方向を見てみてください。

于 2012-08-26T11:07:17.337 に答える
0

同じ問題に直面している人のために、ここに解決策があります:

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

于 2012-08-28T17:25:22.937 に答える