软件使用的授权与注册
作为程序员,很多人都有过自己开发的中小型软件,可如何防止软件被企业或个人盗用和滥用呢?那么花费一点点时间开发一个软件使用授权与注册的组件或软件就显得很有必要了。在此,我将自己开发的一个非常简单且相对可靠的软件授权与注册的小软件的思路说出来,供大家参考和讨论。
首先,需定义一个软件授权的License。
假定我们的License格式以及初始内容为为:Null,2000-1-1,2000-1-1,2000-1-1,2000-1-1,0,True。
它的含义分别为:(CPU或硬盘或MAC地址或几者的综合等)序列号,注册时间,截止使用时间,最后一次使用时间,可使用月数,是否限制使用。
然后,编写一个专门生成License小软件,用一个稍微复杂的算法对Licnese内容加密,生成一个加密文件,如License.lic。该软件可以设置License有效时间,软件试用期限(几个月或者长期)等
最后,在软件的初始页面中加入一段代码。在软件的初始化中,检测软件是否注册,注册是否有效(试用时间是否结束,软件是否被移植等)。如果注册有效,则更新最后一次试用时间为当前系统时间;如果没有注册,则进行注册,在注册过程中,先检测License是否有效,软后将系统时间作为注册时间和最后一次试用时间,然后计算出截止使用时间,以及(CPU或硬盘或MAC地址或几者的综合等)序列号写入加密文件中。
原理:
(1)如果已经注册:
①如果序列号发生变化,则软件系统已经被移植;
②如果当前时间大于截止时间,则试用期结束
③如果当前时间小于最后一次试用时间或注册时间大于当前时间,则认为修改了系统时间
④如果未限制使用(最后一个参数为False),则除了检测序列号外不再检测其他参数
(2)如果没有注册:
①如果当前时间大于License有效时间,则License失效(主要防止用户在注册前重复复制License,这个问题无法根除,只能限制它的有效期)。
该方案应该还有很多不足的地方,望指教!