SQLCipher網站提到SQLCipher Loadlibs和db密碼更改
「使用SQLiteDatabase.loadLibs中的onCreate()初始化數據庫(本); //初始化第一與上下文的DB庫」
我在我的第一個活動中只調用一次loadlibs(似乎正在工作)。我想確保我不需要爲可能訪問數據庫的每個活動調用此函數。它是否正確?
如何更改數據庫密碼?我試過重新鍵,但這不起作用。它仍然需要舊密碼。
任何幫助,將不勝感激。
謝謝。
SQLCipher網站提到SQLCipher Loadlibs和db密碼更改
「使用SQLiteDatabase.loadLibs中的onCreate()初始化數據庫(本); //初始化第一與上下文的DB庫」
我在我的第一個活動中只調用一次loadlibs(似乎正在工作)。我想確保我不需要爲可能訪問數據庫的每個活動調用此函數。它是否正確?
如何更改數據庫密碼?我試過重新鍵,但這不起作用。它仍然需要舊密碼。
任何幫助,將不勝感激。
謝謝。
是的,這是正確的 - 您只需要調用SQLiteDatabase.loadLibs(...);
一次,因爲它負責將Android在運行時使用的各種本機庫SQLCipher加載到進程中。要更改密碼,您必須首先參考已提供原始密碼的SQLiteDatabase
對象。一旦你有,你可以使用execSQL(...);
發出PRAGMA rekey = 'some new password';
。有關rekey命令的更多信息可以在here找到。
SQLiteDatabase.rawExecSQL("PRAGMA key = 'old_password';");
SQLiteDatabase.rawExecSQL("PRAGMA rekey = 'new_password';");
是否有任何情況會導致多次調用SQLiteDatabase.loadLibs? – Michael