我不确定我应该把这个问题作为标题,但我在这里寻求帮助。
我在一家在CORE JAVA平台上制作基于桌面的应用程序的公司工作。 我们提供激活代码来激活我们的软件。 激活的概念是 -
用户输入激活码 - >软件命中我们的服务器并下载所有必需的文件 - >激活完成。
一天一次,我们的软件会点击我们的服务器,检查激活码是否已过期。
Problem- 我们有一个没有常规互联网连接的新客户端。不知怎的,他们同意提供互联网连接一次 -
用户输入激活码 - >软件命中我们的服务器并下载所有必需的文件 - >激活完成。
但之后没有互联网连接。我可以阻止软件与服务器核实激活码的到期日期。 但我的问题是 -
1)如何检查激活码是否真的过期了? (激活码仅有效期为1年)
2)如果在到期后如果用户输入新的激活码,我该如何检查这是一个有效期为1年的激活码?
答案 0 :(得分:1)
1)您可以存储注册日期并将其与系统日期进行比较。当然,用户可以使用日期来锻炼。我曾经有一些软件总是存储它看到的最后一个日期,如果有人将日期移到过去,它会抱怨并且过期了。你可以做这样的事情,但当然它永远不会像和服务器说话一样安全。
2)为您的激活密钥创建一个格式,其中包含新密钥和上一个密钥。所以第一个关键是A,这对于与服务器交谈并检查A是否合适是有益的。一个新的密钥可能看起来像AB意思是“我替换A,再添加一年的激活,我叫做B,所以在一年内,我们需要一个像BC这样的密钥”。您将不得不考虑如何安全地编码,但我相信它可以工作(例如,您可以用A加密B,然后B只能在具有激活码A的机器上使用)。