Java 项目如何实现 jar 包只能在指定 ip 运行

2021-12-17 09:30:36 +08:00
 godleon

现在项目开发完以后,打成 jar 包,要放到客户的内网服务器运行,但是客户那边也有技术团队,现在我们的收益就是按部署服务器来算钱的,所以一定要避免在一台服务器上部署完以后,他们拿着 jar 包去其他服务器部署。 这个有没有比较好的方案可以控制一下? 我想的是在代码里控制指定 ip 才能运行 ,部署的时候先问他们要过来服务器 ip

2025 次点击
所在节点    程序员
10 条回复
zhaokun
2021-12-17 09:42:40 +08:00
jar 包都给人家了,还有啥秘密
ljhrot
2021-12-17 09:45:43 +08:00
内网服务器本身的 IP 地址是可以变动的(可以重复的),或者客户直接在容器环境运行并指定 IP 该怎么处理?

为什么不通过服务器的硬件信息( CPU UUID 等)生成机器码,你们给机器码生成授权许可文件,客户把授权许可文件安装到服务器上面,你们的服务启动之后检测机器码和授权许可是否一致然后判断是否应该正常运行。就算客户把服务器运行 Docker 这样的容器也可以通过参数配置特权模式获取到宿主机的硬件信息
moremoney
2021-12-17 09:56:46 +08:00
开发的软件产品在交付使用的时候,往往有一段时间的试用期,这期间我们不希望自己的代码被客户二次拷贝,这个时候 license 就派上用场了,license 的功能包括设定有效期、绑定 ip 、绑定 mac 等。授权方直接生成一个 license 给使用方使用,如果需要延长试用期,也只需要重新生成一份 license 即可,无需手动修改源代码。
moremoney
2021-12-17 10:05:07 +08:00
虎虎
moremoney
2021-12-17 10:06:07 +08:00
TrueLicense 是一个开源的证书管理引擎,详细介绍见 truelicense.java.net
cedoo22
2021-12-17 10:23:39 +08:00
硬件设备信息,加 license , 用 jni 整个不容易反编译的程序,做 license 验证,否则反编译一下就出来了。
miv
2021-12-17 11:01:55 +08:00
@moremoney 有源码的话可以修改绕过吧。建议加一层代码加密。有个很好的库
msg7086
2021-12-17 11:34:32 +08:00
服务器内网 IP ?那多搞几个同 IP 的服务器不就得了。
HelloWorld556
2021-12-17 11:36:28 +08:00
加密狗
xiaowujava
2021-12-17 19:45:24 +08:00
与当前机器 mac 地址比对,不是设定的就直接销毁源代码

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

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

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

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

© 2021 V2EX