关键词:
- RSA签名
- 硬件检测
- JWT
java -jar license-1.0.0-jar-with-dependencies.jar kengen
# public.pem
# private.pem
生成X509公钥、PKCS8私钥,以pem格式保存。
java -jar license-1.0.0-jar-with-dependencies.jar hardware
# hardware.json
基于oshi实现,读取CPU、主板序列号、MAC地址等硬件信息,保存为JSON格式。
读取hardware.json
,生成License数据模板。
java -jar license-1.0.0-jar-with-dependencies.jar template
# license.yml
# 授权自
iss:
# 授予
sub:
# 过期时间
exp: "2019-01-20 00:29:28"
# 签发时间
iat: "2018-01-20 00:29:28"
# CPU
hw-cpu: "BFBFBFBFBFBFBFBF"
# 主板序列号
hw-mobo: "161616161616161"
# MAC地址
hw-mac: "2c:2c:2c:2c:2c:2c"
完善license.yml
,使用private.pem
签名生成JWT格式license。
java -jar license-1.0.0-jar-with-dependencies.jar license
# license
通过public.pem
验证license,并对License中的数据进行校验。
cc.whohow.license.License.License(key, license)
cc.whohow.license.License.check() // 验证CPU、主板序列号、MAC地址等
cc.whohow.license.License.check(rate) // 0.x概率进行验证
验证不通过,输出License信息,并通过System.exit(-1)
退出程序。
java -jar license-1.0.0-jar-with-dependencies.jar usage