我正在尝试制作一个程序,将选定的文件与硬盘驱动器序列号相关联,这样它就不会在任何其他硬盘驱动器上运行。我必须设置硬盘驱动器序列号的部分在程序的生命周期内应该只运行一次。

我不知道如何实现此功能,我不熟悉互联网上的解决方案使用宏。我希望使用Visual Studio 2017和Windows 10来实现这一点。

最佳答案

您可以在磁盘上创建文件,并将序列号字符串的哈希值与其他一些数据附加到文件中,然后在程序的下一次运行中读取。您可以为此使用openssl。

#include <openssl/sha.h>
...
  string tohash = serial + "secret_suffix";
  unsigned char hash[SHA_DIGEST_LENGTH]; // == 20
  SHA1(to_hash.c_str(), to_hash.length(), hash);
  write_to_file(hash);

您可以在安装应用程序时运行此程序。

关于c++ - 一生运行一次的代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48207223/

10-11 03:33
查看更多