搞计算机的,都知道软件license,版权,著作权等。在商业软件中,常用的模式是一年一付,或者五年一付,即软件的使用权不是无限年限的,在设计软件的时候,开发者就需要考虑这个问题。要实现这个功能,常用license控制,平时我们下载安装也常遇到license或者激活码,注册码等,在软件交付的时候,项目的话一般交付源码,如果是商业软件,则不会贡献源码,而是编译后的。
在软件破解之路,就好比黑客红客白客间的较量,攻防都是相互的,但是多一道口子,毕竟需要牺牲一点破解功力。在这里我们不探讨软件破解问题。而是言归正传,给软件增加license.
开源界有truelicense,这个还是值得推荐的,很不错,虽然我自个研究不深,但下载源码跑跑,测试确实实现了功能。我这里谈谈遇到的相关问题,需要使用jdk自带的keytool生成公钥私钥及license,然后在服务端获取客服端的信息(服务端部署在客服端机器运行,之后删除),也可以自己通过命令获取到相关信息后,直接调用服务端的生成license方法。然后把license文件和公钥,subject,以及其他信息,字段信息要跟服务端一致。参考链接 链接
在跑完server/client案例之后,我想把自己的项目模拟成客户端,以是我下载了一个若依框架,安装这个最简单,前后端不分离版只要执行sql,运行主程序即可。把相关依赖pom增加,在若依的启动类增加@propertiesresource让启动加载license配置。拷贝相关license,config,controller,等参考clientdemo进行粘贴,特别要注意的是LicenseCheckModel一定要跟服务端的包结构一致,要不然启动安装license会报错,根据项目业务进行拦截器url匹配配置,最终完成若依框架license的配置。
试问,在平时的软件开发中,如果加上license配置,部署给客户端的时候给个长一点的license有效期,上线几年后发现license过期,而软件开发人员已经离职了,问下这种情况,当初加license的员工是否会进行法律的制裁?