2

SQLCipher 网站提到

“使用 SQLiteDatabase.loadLibs(this) 在 onCreate() 中初始化数据库;//首先使用上下文初始化数据库库”

  1. 我在我的第一个活动中只调用了这个 loadlibs 一次(似乎正在工作)。我想确保我不需要为可能访问数据库的每个活动调用此函数。它是否正确?

  2. 如何更改数据库密码?我尝试重新生成密钥,但这不起作用。它仍然需要旧密码。

任何帮助,将不胜感激。

谢谢你。

4

2 回答 2

6
SQLiteDatabase.rawExecSQL("PRAGMA key = 'old_password';");
SQLiteDatabase.rawExecSQL("PRAGMA rekey = 'new_password';");
于 2014-10-10T05:57:45.550 回答
4

是的,这是正确的 - 您只需要调用SQLiteDatabase.loadLibs(...);一次,因为它负责将运行时使用的各种本机库 SQLCipher for Android 加载到进程中。要更改密码,您必须首先引用SQLiteDatabase您提供原始密码的对象。一旦你有了它,你就可以PRAGMA rekey = 'some new password';使用execSQL(...);. 更多关于 rekey 命令的信息可以在这里找到。

于 2012-10-16T12:47:36.123 回答