本系列文章主要介绍我近期设计的一个软件License系统。
一、软件需求
假设M公司要发布一款软硬件一体的产品,名为“OfficeDevice”。这个OfficeDevice的上层是一个PC,下层带一些嵌入式设备,而PC上运行一个叫“Office Kits”的软件,这个软件包含三个功能模块:Word、PPT和Excel。
现在要设计一个License系统,需满足以下两点需求:
1,机器绑定
Office Kits在启动后,需要验证License,这个License的某个信息字段要与机器的序列号匹配,如果不匹配,则判License无效。机器的序列号可以是主板编号,当然,OfficeDevice的序列号,来自与它的某个嵌入式设备。
2,模块权限
M公司需要将Word、PPT和Excel三个模块分开卖,License的某个信息字段要包含模块权限的信息,Office Kits在启动后,需要验证这个信息,验证后只激活符合权限的模块。
3,试用期
M公司会发布试用License,试用期一到,License失效。Office Kits的Word、PPT和Excel三个模块不能工作。
二、产品设计
从上面的软件需求可知,这个License系统可以分成两个部分,一个是License文件生成软件,一个是解密模块。
1,License Generator