【问题标题】:Can I have multiple users in SQLCipher?我可以在 SQLCipher 中拥有多个用户吗?
【发布时间】:2020-12-19 19:29:59
【问题描述】:

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

【问题讨论】:

    标签: c++ sqlite authentication database-connection sqlcipher


    【解决方案1】:

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

    您可以做的是启用多方加密的常用技巧:

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

    【讨论】:

    • 谢谢。你会推荐使用什么来避免硬编码k
    • 初始化数据库时随机生成。无论如何,用户永远不会看到它。
    • 但我必须把它保存在某个地方。我应该从 MAC 地址派生它吗?
    • 这取决于您的威胁和/或商业模式。
    猜你喜欢
    • 2018-11-05
    • 2021-12-31
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-21
    • 2020-08-02
    相关资源
    最近更新 更多