密码管理器 - 持续/长期的事情

时间:2013-10-16 10:14:14

标签: c++ passwords

好的,我非常清楚每个人对自制密码管理器的感受,但我想帮助我。 不是实际使用,只是为了学习。

我想知道,在C ++中如何获得长期变量。或者,真的,有任何长期的。

长期意味着什么?在下一次运行.exe时保存或继续的东西。在我的情况下,我想要在哪里,第一次运行程序时它会要求您输入访问密码,因此下次启动程序时,您必须输入首次启动时选择的密码。

目前,我只是使用if()语句检查密码是否等于我想要的密码,如果是,则运行。然而,这远非实际有效,并且不太实用。

我想到的是在某个地方创建一个包含访问密码的文本文件,并阅读它,但这样做会破坏密码管理器的目的。

2 个答案:

答案 0 :(得分:1)

程序中的每个变量只在内存中,在退出时丢失。您必须将其存储在磁盘上,然后从那里读取它。

有很多方法可以直接或间接地做到这一点。

一种非常简单的低级方法是使用ofstreamifstream。 E.g:

#include <iostream>
#include <fstream>

int main() {
  using namespace std;

  int counter = 0;

  // try to load counter from file
  {
    ifstream myfile("mycounter.txt");
    if (myfile.is_open())
    {
      myfile >> counter;
    }
    myfile.close();
  }

  cout << "current counter: " << counter << endl;

  // save counter to file
  {
    ofstream myfile;
    myfile.open("mycounter.txt");
    myfile << counter << endl;
  }
}

您可能更熟悉C函数fopenfreadfwritefclose等。

然后,有数据库,并且有简单的库可以使用这些数据库。查看sqlite,您可以在C ++中使用它。

答案 1 :(得分:1)

您可以启动数据库或将数据保存/写入文件。