需要设置一年后过期的密码

时间:2014-02-22 22:07:25

标签: delphi delphi-7

我的程序受密码保护。当前密码是在程序打开时生成的。在生成期间,它乘以当前年份。因此,当我将程序提供给某人以及我的程序为他们设置的密码(只有我知道,因为我知道它是如何生成的)密码在该年年底更改。这使我可以在年底收取许可费。

我的问题是基于这样一个事实,即如果我在一年的9月份出售我的程序,那么他们当前编码的密码将只持续到该年年底。在初次设置后的三个月内,我无法从逻辑上收取许可费。

我的问题是,有什么方法可以使用Delphi 7生成密码,这个密码会在初始设置后一年到期吗?

3 个答案:

答案 0 :(得分:1)

尝试使用Turbopower OnGuard http://sourceforge.net/projects/tponguard/

它是免费的,允许您创建一个在特定日期之后过期的程序版本。

答案 1 :(得分:0)

您可以为用户提供“许可证文件”,其中包含有关许可证的一些数据 - 过期时,用户名称等;和digital signature证明许可文件是由您生成的(或至少是使用您的私钥签名)。

然后你的程序使用你的公钥验证签名,如果它有效,则将文件的其余部分作为福音。

我确信有一些Delphi 7库可以做PKI,虽然我不知道有什么副手。

答案 2 :(得分:0)

将您提供的密钥拆分为两部分,使用/ 12表示密钥,将%12表示为发行月份。从当前日期减去模数部分,以抵消月份,然后应用现有公式。因此,而不是pwd = key * now.year(),它将是:

pwd = int(key /12) * date(now - months(key % 12)).year()