-1

我有一个项目作为毕业论文。我必须编写一个密码管理器应用程序。在这个应用程序中,许多用户可以创建、登录他们的帐户并管理他们的数据,例如 facebook 帐户、gmail、tiktok ......并且需要使用 SQLite Cipher 来加密每个用户的数据(加密数据的密钥是从用户密码散列而来的)那么,我该如何为每个用户创建每个数据库呢?这个例子,

  • 用户 A 创建他的帐户:用户名 A ,密码 a12345。A登录后,A的数据库为A_db.db
  • 用户 B 创建他的帐户:用户名 B ,密码 b12345。B登录后,b的数据库为B_db.db。
4

2 回答 2

1

是的,您可以(技术上)为每个用户创建一个单独的 SQLite 数据库。SQLite 数据库只是一个文件。打开数据库时给出文件名。具有不同名称的多个文件易于实现。

可能你不需要。

在 Android 上,假定该给定设备只有一个用户。Android 平台 (AFAIK) 不支持多个用户/帐户。所以......假设这个 SQLite 数据库在 Android 用户的设备上,你的问题根本不会出现。

如果数据库在服务器上......将,通过为每个用户保存一个单独的数据库来实现不了多少。您可以将信息保存在一个数据库中:SQLite 或更强大/可扩展的数据库。

为密码管理器应用程序拥有每个用户的 SQLite 数据库有意义的唯一情况是,如果应用程序设计为在支持多个用户帐户的操作系统上运行;例如 Windows、Unix、Linux、Mac OS 等。然后您可以将数据库放在每个用户的主目录中……或类似的东西。

于 2022-01-03T02:08:34.760 回答
0

您不需要每个用户都有一个数据库。每个用户都将在他们的平台上拥有自己的数据库副本(我猜您正计划从标签创建一个 Android 应用程序)。因此,您必须设计数据库,以便每个用户独立于其他用户使用自己的副本。

于 2022-01-02T15:21:28.700 回答