2012-08-26 37 views
0

我想,以避免密鑰派生使用行密鑰數據訪問數據庫(據SQLCipher documentation):無法使用強制應用程序後,原始密鑰數據停止

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

當我逼應用程序停止,訪問數據變得不可能。

如果不使用SQLCipher,則不會發生此行爲。即使強制應用程序停止後,數據庫仍可讀。

我我做錯了什麼?

由於提前,

+0

這似乎是同樣的問題問GitHub的問題頁面[這裏](HTTPS上:// github上。 com/sqlcipher/android-database-sqlcipher/issues/62),我已經評論過那裏,要求提供更多信息。 –

+0

有關此問題的其他信息:-) – ridan

回答

0

我的理解是,該數據庫是不是除了由應用訪問 - 這是爲了防止訪問他們不應該

+0

可以直接指定密鑰以避開密鑰派生。有了這個,即使在重新啓動手機或強制應用程序停止後,數據庫仍然可讀。 – ridan

0

您需要向我們展示更多的代碼數據的其他應用所以我們能夠給你正確的答案。

您的來電等於

SQLiteDatabase.openDataBase(databaseFile.getPath() 「」, CREATE_IF_NECESSARY,NULL);

當你強制關閉應用程序everething被恢復時,包括所有的靜態參數。 因此,以前運行的應用程序可能會影響的唯一數據是您在數據庫中保存的數據。所以試着看看那個方向。

+0

我使用Android的Cordova插件來訪問SQLite數據庫: [link](https://github.com/chbrody/Cordova-SQLitePlugin/blob/master/Android/src/com/phonegap/plugin/sqlitePlugin/ SQLitePlugin.java) 我對SQLCipher [link](http://mobileapphelp.blogspot.com/2012/08/trying-sqlcipher-with-cordova.html)做了一些改動, – ridan

相關問題