V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
godleon
V2EX  ›  程序员

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

  •  
  •   godleon · 2021-12-17 09:30:36 +08:00 · 2228 次点击
    这是一个创建于 1070 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    为什么不通过服务器的硬件信息( CPU UUID 等)生成机器码,你们给机器码生成授权许可文件,客户把授权许可文件安装到服务器上面,你们的服务启动之后检测机器码和授权许可是否一致然后判断是否应该正常运行。就算客户把服务器运行 Docker 这样的容器也可以通过参数配置特权模式获取到宿主机的硬件信息
    moremoney
        3
    moremoney  
       2021-12-17 09:56:46 +08:00
    开发的软件产品在交付使用的时候,往往有一段时间的试用期,这期间我们不希望自己的代码被客户二次拷贝,这个时候 license 就派上用场了,license 的功能包括设定有效期、绑定 ip 、绑定 mac 等。授权方直接生成一个 license 给使用方使用,如果需要延长试用期,也只需要重新生成一份 license 即可,无需手动修改源代码。
    moremoney
        4
    moremoney  
       2021-12-17 10:05:07 +08:00
    虎虎
    moremoney
        5
    moremoney  
       2021-12-17 10:06:07 +08:00
    TrueLicense 是一个开源的证书管理引擎,详细介绍见 truelicense.java.net
    cedoo22
        6
    cedoo22  
       2021-12-17 10:23:39 +08:00
    硬件设备信息,加 license , 用 jni 整个不容易反编译的程序,做 license 验证,否则反编译一下就出来了。
    miv
        7
    miv  
       2021-12-17 11:01:55 +08:00 via Android
    @moremoney 有源码的话可以修改绕过吧。建议加一层代码加密。有个很好的库
    msg7086
        8
    msg7086  
       2021-12-17 11:34:32 +08:00 via Android
    服务器内网 IP ?那多搞几个同 IP 的服务器不就得了。
    HelloWorld556
        9
    HelloWorld556  
       2021-12-17 11:36:28 +08:00
    加密狗
    xiaowujava
        10
    xiaowujava  
       2021-12-17 19:45:24 +08:00
    与当前机器 mac 地址比对,不是设定的就直接销毁源代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:52 · PVG 05:52 · LAX 13:52 · JFK 16:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.