SQLCipher Loadlibs和db密码更改

时间:2012-10-14 23:30:39

标签: android database sqlite sqlcipher

SQLCipher网站提及

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

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

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

  3. 任何帮助都将不胜感激。

    谢谢。

2 个答案:

答案 0 :(得分:4)

SQLiteDatabase.rawExecSQL("PRAGMA key = 'old_password';");
SQLiteDatabase.rawExecSQL("PRAGMA rekey = 'new_password';");

答案 1 :(得分:3)

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