smart-license 2.0发布,守护你的软件权益


smart-license 是一款用于安全加固的开源项目。 主要服务于非开源产品、商业软件、具备试用功能的付费软件等,为软件提供授权制的使用方式。

一、适用场景

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

二、产品特色

  • 开源,代码完全公开,License的生成原理是透明的。
  • 易用,秒级生成License。
  • 安全,生成的 License 在一定程度上具备防篡改能力,破解难度大。

三、更新说明

这是一个颠覆性的版本,为了给用户提供更好的使用体验。我们果断的剔除了 1.x 版本中的 License 生成功能,并提供了 License 的在线申请服务,整个过程仅需几秒钟。

在 smart-license 2.0 中,我们将协议规则调整为语言无关的模式。这意味着除了Java,未来我们还能为其他编程语言提供同等的授权服务。

3.1 Shield.盾

这是License在线申请服务的产品名,寓意着:守护。

你可以通过我们的使用文档连接找到该服务地址。在此感谢为我们提供服务器的朋友,以及前端框架layui-vue作者给予的技术支持。

3.2 客户端

客户端仅做了少许的优化,老用户稍加调整便可适配过来,不过原有的License 文件需要重新生成。

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

示例程序:

private void loadLicense(Properties properties) {
1️⃣ License license = new License(entity -> EnterprisePlugin.this.uninstall(),10);

2️⃣ try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("License.shield")) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int size;
while ((size = inputStream.read(bytes)) > 0) {
byteArrayOutputStream.write(bytes, 0, size);
}
3️⃣LicenseEntity entity = license.loadLicense(byteArrayOutputStream.toByteArray());
4️⃣properties.load(new ByteArrayInputStream(entity.getData()));
System.out.println(properties);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
  1. 初始化 License 客户端。注册license过期后的回调逻辑,以及过期状态下的回调重复触发频率(单位:秒)。
  2. 加载 License 文件流。
  3. 解析 License 进行合法性校验,并获取授权内容。
  4. 基于授权内容进行软件运行时的配置初始化。

四、最后

我们寄希望于用技术的力量来守护技术人的权益,所以创造了 smart-license 。

但因某些因素致使该项目长期处于托管状态,在此向曾经关注该项目,以及前来技术咨询的朋友说是抱歉。

我们无法承诺会持续维护该项目,也没有计划在社区提供免费的咨询服务。

如果有朋友愿意为这个项目贡献一份力量(包括且不限于:策略优化、文档、推广运营、付费咨询),在此表示非常的欢迎和感谢!

仓库:https://gitee.com/smartboot/smart-license

文档:https://smartboot.gitee.io/smart-license/ (内有 Shield.盾 的跳转连接)


相關推薦

2023-04-19

云片、网易云) V6.2.0版本更新 2023年04月18日ModStartCMS发布v6.2.0版本,增加了以下18个特性: [新功能] 图表显示新增加另存为图片、数据视图功能 [新功能] Banner导航自动隐藏显示动画 [新功能] Grid过滤组件Range-Datetime增加

2022-10-23

将一直存在,并且随着积分值的慢慢增多,也会相应提高你的用户等级,不同的等级在社区里将会享受到不同的权益 用户等级详情可见下表:   其中,活跃度的分值计算如下: 论坛积分x0.2+openKylin成长体系积分=总活跃

2022-09-16

Arduino IDE 2.0 现已发布。Arduino IDE 2.x 是一次重大改写,不与 IDE 1.x 共享任何代码。它基于 Theia IDE 框架并使用 Electron 构建。编译和上传等后端操作被卸载到以守护程序模式运行的 arduino-cli 实例。官方表示,开发此

2023-06-26

lld 开源防火墙守护程序诞生于 2011 年,两年前 Firewalld 才发布了 1.0 版本,如今 2.0 版本正式发布,发布周期明显比以往更快。 Firewalld 2.0 更新内容如下: 增加了对 NFTables flowtable 的支持,它是一种软件快速路径,可以显著提

2023-03-01

度和编排平台提供的设施来履行其职责。 Rook v1.11 正式发布,主要更新内容如下: Ceph-CSI v3.8 Ceph-CSI 驱动程序的 v3.8 版本现在是 Rook 默认部署的版本。该驱动程序有一些重要的更新,以增加更多的存储功能提供给客户端。 fscr

2023-04-28

名为 StreamPark,随后通过投票于 9 月 正式成为 Apache 开源软件基金会的孵化项目。 被抄袭侵权 前几天,有开发者跟我们反馈,有项目 copy StreamPark 的代码并且没有声明版权,起初我们不相信,以 Apache 项目的知名度和 Apache 开源

2022-07-07

版本日前在 Bacula 官方网站(www.bacula.org)和 SourceForge 上发布。这是一个重要的新版本,有许多新功能和变化。虽然新功能已经过测试,但它们还没有在生产环境中运行,因此在投入生产前请仔细测试这些代码。 兼容性 与以

2022-11-03

如果,想要建立属于自己的跨境品牌; 那么,独立站是你的必经之路。独立站更能突出你的产品,提升客户信任度,传递品牌价值。独立站可以随时根据你的需求进行调整/优化,设置活动,运营和维护客户 2.  海外有丰富

2022-11-24

经过三年多的努力,Hanami 2.0 正式发布,随着这个版本的发布,Hanami 进入了框架成熟的新阶段,并为 Ruby 社区开启了新的篇章。 更好 Hanami 2.0 的核心是现在的 app/ 目录,在这里,你可以随心所欲地组织你的代码,同时还可以享

2023-04-15

等多个层面进行创新探索。 AIGC 领域将关注 AI 与游戏、软件工程等领域的融合,探讨如何充分利用 AI 技术为这些行业带来创新和突破。 参会者将有机会深入了解 AI 技术的前沿动态,结识业界专家和同行,拓展人脉资源,共

2023-05-16

误。与此同时,Remix 开发团队还透露,Remix 2.0 版本即将发布。 CSS Modules/Vanilla Extract/CSS Side-Effect 1.16.0 版本稳定了对 CSS Modules、Vanilla Extract 和 CSS side-effect 导入的内置支持,这些功能以前只能通过 future 标志(future.unstable_cssModul

2023-02-15

未开启去重时默认开启1秒去重 优化:利用BatteryReceiver守护自启动的Frpc (试验) #254 修复:Android 13 无法授予通知权限 #255 修复:重启手机自动启动APP时加载配置失败 #233 #245 修复:转发消息遍历发送通

2023-02-11

2月8日,龙芯中科发布公告称,公司撤诉对上海芯联芯提起的关于3A5000处理器不侵犯MIPS指令系统的计算机软件著作权的诉讼案(案件1);同时,上海芯联芯针对公司LoongArch和3A5000处理器的诉讼案(案件2)已判决,北京知识产权

2022-07-26

WebStorm 2022.2,即今年的第二个更新已经发布了。这次更新的新功能使 WebStorm 变得更好,包括对 Angular 独立组件的支持,对 Vue 3 的更新,对 TypeScript 4.7 的支持,内置远程开发,以及对编辑器的大量改进。 对 Angular 独立组件的