导读 | smart-license 是一款用于安全加固的开源项目。 主要服务于非开源产品、商业软件、具备试用功能的付费软件等,为软件提供授权制的使用方式。 |
- 非开源产品、商业软件、收费软件。
- 限制产品的传播性,每个客户拥有专属 License。
- 同一款软件发行包根据 License 的不同提供不同的服务能力。
- 限定软件授权时效。
- 开源,代码完全公开,License 的生成原理是透明的。
- 易用,秒级生成 License。
- 安全,生成的 License 在一定程度上具备防篡改能力,破解难度大。
这是一个颠覆性的版本,为了给用户提供更好的使用体验。我们果断的剔除了 1.x 版本中的 License 生成功能,并提供了 License 的在线申请服务,整个过程仅需几秒钟。
在 smart-license 2.0 中,我们将协议规则调整为语言无关的模式。这意味着除了 Java,未来我们还能为其他编程语言提供同等的授权服务。
这是 License 在线申请服务的产品名,寓意着:守护。
你可以通过我们的使用文档连接找到该服务地址。在此感谢为我们提供服务器的朋友,以及前端框架 layui-vue 作者给予的技术支持。
客户端仅做了少许的优化,老用户稍加调整便可适配过来,不过原有的 License 文件需要重新生成。
示例程序: private void loadLicense(Properties properties) { License license = new License(entity -> EnterprisePlugin.this.uninstall(),10); # 初始化 License 客户端。注册 license 过期后的回调逻辑,以及过期状态下的回调重复触发频率(单位:秒)。 try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("License.shield")) { # 加载 License 文件流。 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); byte[] bytes = new byte[1024]; int size; while ((size = inputStream.read(bytes)) > 0) { byteArrayOutputStream.write(bytes, 0, size); } LicenseEntity entity = license.loadLicense(byteArrayOutputStream.toByteArray()); # 解析 License 进行合法性校验,并获取授权内容。 properties.load(new ByteArrayInputStream(entity.getData())); # 基于授权内容进行软件运行时的配置初始化。 System.out.println(properties); } catch (IOException e) { throw new RuntimeException(e); } }
我们寄希望于用技术的力量来守护技术人的权益,所以创造了 smart-license 。
但因某些因素致使该项目长期处于托管状态,在此向曾经关注该项目,以及前来技术咨询的朋友说是抱歉。
我们无法承诺会持续维护该项目,也没有计划在社区提供免费的咨询服务。
如果有朋友愿意为这个项目贡献一份力量(包括且不限于:策略优化、文档、推广运营、付费咨询),在此表示非常的欢迎和感谢!
原文来自:
本文地址://gulass.cn/smart-license-20.html编辑:问题终结者,审核员:清蒸github
Linux大全:
Linux系统大全: