【问题标题】:SQLCipher Loadlibs and db password changeSQLCipher Loadlibs 和 db 密码更改
【发布时间】:2012-10-14 23:30:38
【问题描述】:

SQLCipher 网站提到

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

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

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

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: android database sqlite sqlcipher


    【解决方案1】:
    SQLiteDatabase.rawExecSQL("PRAGMA key = 'old_password';");
    SQLiteDatabase.rawExecSQL("PRAGMA rekey = 'new_password';");
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 在任何情况下多次致电SQLiteDatabase.loadLibs 会造成伤害吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 2019-04-30
      • 1970-01-01
      相关资源
      最近更新 更多