Java 如何实现软件许可证功能?

2023-08-30 10:45:10 +08:00
 wenbingkun
我在开发一个基于 Spring Boot 和 Vue 的前后端分离项目,现在面临一个需求:为软件添加许可证功能,从而区分试用版、正式版等,并通过激活码或许可证文件进行软件激活。

目前想到的实现思路:

后端( Spring Boot ):用于生成、验证和存储许可证信息。
前端( Vue.js ):用于让用户输入激活码、上传许可证文件或显示激活状态等。

还有一些疑虑:

许可证的验证应该在哪一端进行?只在后端进行还是两端都需要?
如何确保前端和后端的许可证验证同步?
对于前后端分离的项目,有没有哪些特定的安全性问题需要注意?
是否有推荐的库或工具,特别是适合这种架构的?

如果有相关经验或建议,希望能与我分享,感谢!
5193 次点击
所在节点    Java
29 条回复
wenbingkun
2023-08-30 15:59:00 +08:00
@aapeli 好的,谢谢
wenbingkun
2023-08-30 15:59:35 +08:00
@Dream11 正在看 TrueLicense 的文档
mmdsun
2023-08-30 17:39:50 +08:00
这个是怎么出售的的?后端也卖给别人吗?这种很难防住的。
k9990009
2023-08-30 19:52:18 +08:00
用 classfinal 把代码加密下
lqw3030
2023-08-30 20:06:15 +08:00
项目价值确实高的话,就不自己瞎倒腾,直接上 codemeter ,自己倒腾参照 IDEA,年年有破解。。
dode
2023-08-30 20:36:20 +08:00
检查环境,定期连接互联网服务器核查续期
xianzhe
2023-08-31 07:49:26 +08:00
javaagent 在那,很难防得住,当然基本的 license 检查和代码混淆还是要做的,另外还要考虑多破解的检查以支持法务的介入。这东西往难了做能做的很复杂,可以搞专门的加密狗一样的东西,甚至必须用专有定制的硬件,还是要综合考虑成本值不值
tramm
2023-08-31 08:46:55 +08:00
参考 J2eeFast 这个项目看看呢
t298
2023-09-07 17:12:27 +08:00
使用 TrueLicense ,也是在 docker 里部署的,获取 mac ,ip 和 cpu 信息好像都有点问题。目前只搞定了时间的验证,因为是部署是内网的,那是不是只要说改了服务器时间,那这个验证就失效了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/969409

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX