我成功地使用 SQLCipher 加密了我的 Room DB。
我现在想让用户选择更改数据库密码。那么如何使用 Room DB 更改 SQLCipher 密码呢?
我成功地使用 SQLCipher 加密了我的 Room DB。
我现在想让用户选择更改数据库密码。那么如何使用 Room DB 更改 SQLCipher 密码呢?
找到了答案:
database.query("PRAGMA rekey = '$newPassword';", emptyArray())
作为带有上下文的完整代码示例:
fun changePassword(previousPassword: String, newPassword: String) {
val passphrase = SQLiteDatabase.getBytes(previousPassword.toCharArray())
val factory = SupportFactory(passphrase)
val database = Room.databaseBuilder(applicationContext, <your_database_class>::class.java, "<database_name>")
.openHelperFactory(factory)
.build()
database.query("PRAGMA rekey = '$newPassword';", emptyArray())
}
甚至不需要关闭并重新打开数据库。