当前位置:   article > 正文

SpringBoot 项目 引入ClassFinal 解决代码加密和机器码绑定问题_net.roseboy

net.roseboy

场景

这边用 springboot 开发打包后得到 jar 包,要在客户机器上部署,有防反编译和绑定唯一id的需求

引入

https://gitee.com/roseboy/classfinal.git

Maven 插件方式引入

<plugin>
                <groupId>net.roseboy</groupId>
                <artifactId>classfinal-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <!--  加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码,当为 # 时不加密 -->
                    <password>xxxx</password>
                    <!-- 加密的包名(可为空,多个用","分割) -->
                    <packages>io.renren</packages>
                    <!--  配置说明文件,如果没有特殊的打包要求可以注销 cfgfiles 标签  -->
                    <cfgfiles>application.yml</cfgfiles>
                    <code>xxxx</code>
                    <!--  排除的类名(可为空,多个用","分割) -->
<!--                    <excludes>org.spring</excludes>-->
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>classFinal</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

打包

会看到得到一个 xxx-encrypted.jar

启动时可以看到提示需要输入密码

java -javaagent:xxx-encrypted.jar -jar xxx-encrypted.jar
  • 1

绑定机器码

https://gitee.com/link?target=https%3A%2F%2Frepo1.maven.org%2Fmaven2%2Fnet%2Froseboy%2Fclassfinal-fatjar%2F1.2.1%2Fclassfinal-fatjar-1.2.1.jar

# 部署的机器上运行
java -jar classfinal-fatjar.jar -C
  • 1
  • 2

配置文件的 code 里面 配置待部署的机器上生成的 code

就能实现绑定机器码了

TODO

其实还剩下一个后台运行输入 passwd 的需求没实现,这里挺矛盾的,所以实际用的时候我没设置密码,password 那一行注释掉了,后面再填坑吧

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/810154
推荐阅读
相关标签
  

闽ICP备14008679号