Java 激活码

Java 激活码,java,activation,Java,Activation,我不知道我应该把什么作为这个问题的标题,但我在这里寻求帮助 我在一家公司工作,该公司在核心JAVA平台上开发基于桌面的应用程序。 我们提供激活码来激活我们的软件。 激活的概念是- 用户输入激活码-->软件点击我们的服务器并下载所有所需文件-->激活完成 每天,我们的软件都会点击服务器,检查激活码是否过期 问题- 我们有一个新的客户端,它没有正常的互联网连接。不知何故,他们同意提供一次互联网连接- 用户输入激活码-->软件点击我们的服务器并下载所有所需文件-->激活完成 但在那之后就没有互联网连接

我不知道我应该把什么作为这个问题的标题,但我在这里寻求帮助

我在一家公司工作,该公司在核心JAVA平台上开发基于桌面的应用程序。 我们提供激活码来激活我们的软件。 激活的概念是-

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

每天,我们的软件都会点击服务器,检查激活码是否过期

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

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

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

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

2) 如果用户在到期后输入新的激活码,我如何检查这是否是有效期为1年的有效激活码

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

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