我可以在 SQLCipher 中有多个用户吗?

Can I have multiple users in SQLCipher?

我在 C++ 项目中使用 SQLCipher。它有多个用户,每个用户都必须有自己的数据库凭据。 SQLCipher 可以为我做这个吗?如果是,请留下示例代码。如果不是,请分享您对如何做的看法。

不,你不能。看起来 SQLCipher 使用密钥派生函数将您的密码转换为在 SQLite 数据库的每个页面上应用的密钥。

您可以做的是启用 multi-party 加密的常用技巧:

  1. 使用完全随机的密钥加密数据库k
  2. (user, encrypt(k, user_key)) 的元组存储在数据库旁边的文件中。 user_key 又可以使用密钥派生函数从密码生成。