0

我不确定我应该为这个问题写什么标题,但我在这里寻求帮助。

我在一家在 CORE JAVA 平台上制作基于桌面的应用程序的公司工作。我们提供激活码来激活我们的软件。激活的概念是——

用户输入激活码 --> 软件访问我们的服务器并下载所有需要的文件 --> 激活完成。

每天一次,我们的软件会访问我们的服务器以检查激活码是否已过期。

问题 - 我们有一个没有常规互联网连接的新客户端。不知何故,他们同意提供一次互联网连接——

用户输入激活码 --> 软件访问我们的服务器并下载所有需要的文件 --> 激活完成。

但在那之后没有互联网连接。我可以停止软件与服务器检查激活码的到期日期。但我的问题是——

1) 如何检查激活码是否实际过期?(激活码有效期仅一年)

2) 如果过期后如果用户输入新的激活码,我如何检查这是一个有效期为 1 年的有效激活码?

4

1 回答 1

1

1)您可以存储注册日期并将其与系统日期进行比较。当然,用户可以使用日期进行锻炼。我曾经有一些软件总是存储它看到的最后一个日期,如果将日期移到过去,它就会抱怨并insta-expired。你可以做这样的事情,但当然它永远不会像与服务器交谈那样安全。

2) 为您的激活密钥创建一个格式,其中包含新密钥和以前的密钥。所以第一个键是,比如说,A,它有利于与服务器交谈并检查 A 是否正常。一个新的密钥可能看起来像 AB,意思是“我替换 A,添加另一年的激活,并被称为 B,所以一年后,我们将需要一个像 BC 这样的密钥”。您必须考虑如何安全地对其进行编码,但我非常有信心它可以工作(例如,您可以用 A 加密 B,然后 B 只能在具有激活码 A 的机器上使用)。

于 2010-12-28T04:42:23.773 回答