smart-license是一款用于安全加固的开源项目。主要服务于非开源产品、商业软件、具备试用功能的付费软件等,为软件提供授权制的使用方式。smart-license适用场景非开源产品、商业软件、收费软件。
限制产品的传播性,每个客户拥有专属 License。
同一款软件发行包根据 License 的不同提供不同的服务能力。
限定软件授权时效smart-license特色开源,代码完全公开,License的生成原理是透明的。
易用,提供二进制包,直接基于命令行生成 License。
安全,生成的 License 在一定程度上具备防篡改能力,破解难度大。
安全加固,采用非对称加密方式对 License源数据 进行预处理,防止伪造License。smart-license使用方式生成License
1、下载smart-license.tar.gz包,解压
2、进入bin目录执行以下命令,例如:./license.sh 1d HelloWorld。
1d:表示授权效期1天,即一天后该License便过期。支持的效期格式包括:
h,1h:1小时; 2h:2小时
d,1d:1天; 10d:10天
y,1y:1年; 2y:2年
HelloWorld:表示待加密的license内容。
实际场景下可以通过license授权不同的产品功能和有效期,例如:./license.sh 1y features_1:on;features_2:off; 如果待授权的license内容为文件,可以采用同样的命令,例如:./license.sh 1y config.properties
3、执行成功后,会在当前目录下生成 License:license.txt以及 License源文件:source.txt。 注意:license.txt是提供给客户的授权文件;而source.txt是由软件提供方持有,其中包含加密私钥,需要妥善保使用License
1、引入Maven依赖
org.smartboot.license
license-client
1.0.0-SNAPSHOT
2、载入License。如若License已过期,则会触发异常。
public class LicenseTest {
public static void main(String[] args) throws Exception {
File file=new File("license.txt");
License license = new License();
LicenseConfig licenseConfig=license.loadLicense(file);
System.out.println(licenseData.getOriginal());
}
}
3、获取licenseData并以此配置启动软件。smart-license截图
1