【问题标题】:updating passwords in a simple password manager在简单的密码管理器中更新密码
【发布时间】:2013-07-29 00:14:34
【问题描述】:

我正在使用 C++ 编写一个简单的密码管理器,我想知道如何在关闭程序后更新我的密码。

如果我更新程序中的密码,我相信它们会在我退出程序后恢复到源代码中的内容。有没有办法在程序关闭后使更改持久化?

当我更改密码时,没有将密码列表一遍又一遍地写入输出文件,还有其他方法吗?

【问题讨论】:

  • 使用某种数据库。
  • 永远不要存储密码本身;只需存储哈希。
  • 除了数据库或输出文件,还有其他方法吗?我想保持它的轻量级和独立性。
  • 如果可移植性不成问题,Windows 注册表可以作为此任务的良好存储空间。

标签: c++ password-storage


【解决方案1】:

我强烈建议使用已经存在且高度合格的东西。您需要的持久存储类型可以满足您的要求。

对于只需要存储有关当前上下文或某种凭据的信息的应用程序,我建议使用轻量级事务数据库,例如SQLite database。一个全面而简单的 API exists for C/C++

使用遵循ACID原则的SQLiteMySQL等数据库系统要容易得多,因为数据库系统保证ConsistencyAtomicity的事务、IsolationDurability .这将使您的应用程序存储更加高效,并且更不容易出现常见的编程错误,并且如果在事务期间发生任何错误,您将被告知。

【讨论】:

    【解决方案2】:

    答案取决于您编写的系统/平台。基本上,您需要某种持久存储,它可以是本地文件系统或数据库等外部存储。 写入文件看起来是一种快速简单的解决方案,但是您可能需要注意安全性。因此使用一些加密库。如果您的密码列表足够大,但您仍想使用本地存储,请考虑使用 sqlite。

    【讨论】:

      最近更新 更多