Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在应用程序中实现到期日期?_C++_Time - Fatal编程技术网

C++ 在应用程序中实现到期日期?

C++ 在应用程序中实现到期日期?,c++,time,C++,Time,我想在我制作的一些软件上写一个有效期。显然 伪代码: if time() > xxx: exit() 所有人在这里要做的就是把他们的系统时钟调回来。还有更好的方法吗?更方便用户的方法是记录用户使用软件的天数。例如,每次程序启动时,您都可以将日期写入加密文件(除非文件中已经存在该日期)。然后,一旦文件中有超过30个日期,让用户知道是时候购买完整版本了。解决方案不需要完美,只需要让用户感到足够烦人,这样他就不会尝试玩这个系统了 您可以计算aboslute值的差异,并确保其小于X天。这样,他们

我想在我制作的一些软件上写一个有效期。显然

伪代码:

if time() > xxx: exit()

所有人在这里要做的就是把他们的系统时钟调回来。还有更好的方法吗?

更方便用户的方法是记录用户使用软件的天数。例如,每次程序启动时,您都可以将日期写入加密文件(除非文件中已经存在该日期)。然后,一旦文件中有超过30个日期,让用户知道是时候购买完整版本了。

解决方案不需要完美,只需要让用户感到足够烦人,这样他就不会尝试玩这个系统了


您可以计算aboslute值的差异,并确保其小于X天。这样,他们就需要将时钟始终保持在X天之内。没有人会永远这么做

关闭您安装的其中一个文件的创建日期


这将为您提供一个从现在开始减去的非更改日期,以获得安装程序的时间。唯一的问题是当他们重新安装时。解决这一问题的最简单方法是使用注册表设置。

如果有人投入足够的精力,他们总能击败您的系统。乔尔·斯波尔斯基(Joel Spolsky)说了一些非常准确的话(我的话):

您的软件保护方案不必是防弹的(也不可能是防弹的),它只需要足够好以保持诚实的人诚实

因此,考虑到这一点,我们可以想出一些足够聪明的办法,让诚实的人保持诚实,因为肮脏的骗子无论如何都不会为你的应用付费。我从未需要这样做,也没有研究过任何已知的方法,但我能想到一些想法:

  • 使用双向哈希存储初始日期,并将其与当前日期进行比较。您可以将文件保存到磁盘

  • 在Windows上,使用注册表。是的,这不是一个可以防弹的地方,但是大多数人不会在注册表中查找您的密钥(而且大多数人也不知道如何查找)

  • 使用安装文件的创建日期作为参考


  • 这里没有真正的解决办法——任何东西都可能被破解。你可以考虑:

    • 用在线电话查询时间 服务
    • 存储上次运行日期和 检查以确保它不是 在当前日期之后
    • 检查 某些系统上的“上次修改”日期 档案

    您可以尝试在注册表中记录时间戳。您可以在将时间戳放在那里时对其进行加密。问题是它值得吗


    弄乱你的电脑时钟,尤其是把它倒转,会让你头疼不已。人们通常不会这么做,至少在微软、Adobe等公司推出的所有有时间限制的试用版软件中,都不会试图建立防止时钟倒转的保护措施?如果是为了阻止所有的盗窃,祝你好运;所有的保护计划最终都将被打破。如果是为了让诚实的人保持诚实,不要担心他们会让时间倒流——这已经够麻烦的了,没有人会这么做,那些诚实的人会立即付出代价。

    “没有人会永远这么做”-不要这么肯定:-)。我同意你的看法。是的,永远不要说永远;然而,不断调整时钟的麻烦相当大。像Beyond Compare这样的产品使用此方案-非常适合安装您的产品并且在30天内没有使用它却发现试用期已过期的潜在客户。删除该文件并获得扩展名。您可以在文件中添加安装时间戳的哈希作为标头并将其与安装时间进行比较,以防止“删除扩展名”。删除已使用的加密日期存储文件将导致自动结束试用。头文件的顶部应该包含某种签名,该签名由安装程序每次运行时唯一生成,并根据存储在其他秘密位置的其他秘密数据进行检查。当然,所有这些东西都是脆弱的,很容易被装备精良的观察者击败。烦恼只是为了抵消成本。对于一个百万美元的项目来说,时间肯定会倒流。对于10美元的项目,一周后支付费用。