Springboot-软件授权License

无意中看到了一个简单方便的授权方式,只需几步就可集成到boot项目中。

Smart-license简介

smart-license 是一款用于安全加固的开源项目。 主要服务于非开源产品、商业软件、具备试用功能的付费软件等,为软件提供授权制的使用方式。
1. License,通过 smart-license 生成的授权文件,导入至要授权使用的软件产品中。
2. 源数据,需要进行 License 加工处理的基础数据。例如,将软件产品运行的配置文件作为源数据,经由 smart-license 授权处理后生成 License 文件。
3. License源文件,生成 License 的同时,创建一份文件用于记录:源数据,授权时间,过期时间,秘钥对等信息。由软件授权方持有,当客户遗失 License 文件之后可以根据License源文件重新生成 License。

适用场景:

  • 非开源产品、商业软件、收费软件。
  • 限制产品的传播性,每个客户拥有专属 License。
  • 同一款软件发行包根据 License 的不同提供不同的服务能力。
  • 限定软件授权时效

产品特色

  • 开源,代码完全公开,License的生成原理是透明的。
  • 易用,提供二进制包,直接基于命令行生成 License。
  • 安全,生成的 License 在一定程度上具备防篡改能力,破解难度大。
  • 安全加固,采用非对称加密方式对 License源数据 进行预处理,防止伪造License。

License运行流程

License申请流程

找回License

使用方式

下载smart-license.tar.gz包,解压。

进入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

执行成功后,会在当前目录下生成 License:license.txt以及 License源文件:source.txt。 注意:license.txt是提供给客户的授权文件;而source.txt是由软件提供方持有,其中包含加密私钥,需要妥善保管

项目集成

  • 引入Maven依赖

<dependency>
  <groupId>org.smartboot.license</groupId>
  <artifactId>license-client</artifactId>
  <version>1.0.3</version>
</dependency>

载入License。如若License已过期,则会触发异常。

public class LicenseTest {
  public static void main(String[] args) throws Exception {
      File file=new File("license.txt");
      License license = new License();
      LicenseEntity licenseEntity=license.loadLicense(file);
      System.out.println(new String(licenseEntity.getData()));
  }
}
  • 获取licenseEntity并以此配置启动软件。

  • 还原license

  1. 进入bin目录执行以下命令,例如:./license_revert.sh source.txt。
  2. 执行成功后会在当前目录下生成License文件license_revert.txt。
简单方便,几行代码放在启动方法里校验,也可以加注在拦截器里。
  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林知屿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值