JAVA 从原理到实现,制作license文件,可用于模块授权,程序授权等

License

关于License的概念、用途和好坏处,网上一搜一大堆的,但我讲的这个License,并非是自娱自乐,而是教大家如何做一个符合商用的license。

如何商用/h2>

可以定义一个或者多个唯一的属性,用来标识License使用方,说白了就是标识谁使用了你的平台、软件、模块或者库,这个标识可以是machine也可以是people,一经生成,便不能修改和删除。比如计算机Mac地址、主板序列号和CPU序列号,或者是软件安装序列号、用户UUID,根据这些number,可以确保授权对象唯一,不可复制。
有了上面的保护之后,那就可以赚钱了。比如你可以区分业务类型,其实就是使用范围,不同业务不同套餐费用,或者是实例创建数量和API调用次数,这些都可以是计费标准,还有最常见的就是时间限制,超过有效时间期限,则无法继续使用。

君子爱财取之有道。是时候切入正题了,在写代码之前,需要制作一对秘钥,私钥对授权内容进行签名,公钥给授权方校验License文件是否正确有效。

秘钥制作

在这里,我用的是JDK自带keytool工具制作的。方法如下:
前提:使用CMD命令进入JDK的bin目录下:

JAVA 从原理到实现,制作license文件,可用于模块授权,程序授权等生成文件截图:
JAVA 从原理到实现,制作license文件,可用于模块授权,程序授权等

获取私钥工具类:

签名工具类:

对示例内容进行签名:

把new String(sign)结果填入licence文件下的signature标签里,写到这里,license文件制作完成。

看到这里,是不是觉得so easy,自己完全可以写一个license生成器,这样生成license文件就会很轻松了,一键到位。

验证License文件

验证license是否有效,需要用到证书文件,或者公钥,用cer证书最后也是为了获取公钥的,至于用哪个,看自己的咯,可以把这个文件发给客户,也可以放到服务器上,只要能找到就可以了。
举个栗子,发cer证书给客户,让客户把证书安装在指定位置。
获取公钥工具类:

来源:Steven Jon

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月24日
下一篇 2020年3月24日

相关推荐