实用的jar包加密方案

前言

jar包相信大家都很熟悉,是通过打包java工程而获得的产物,但是jar包是有一个致命的缺点的,那就是很容易被反编译,只需要使用jd-gui就可以很容易的获取到java源码。

如果你想要防止别人反编译做逆向工程,那么对jar包进行一次加密就是一项很重要的工作了。

如何对jar包进行加密呢?其实没有想象中的那么困难,有一款开源工具已经提供了较为完善的加密方案,这款开源工具的名字叫做xjar。

接下来我们就看一下使用xjar工具给jar包加密有多么的容易。

基础环境准备

现在假设你的项目是一个maven项目(目前不使用maven的项目已经不多了),那么加密起来特别的容易,

首先就是要在你的pom文件中增加插件仓库地址,如下:

    <pluginRepositories>
        <pluginRepository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </pluginRepository>
    </pluginRepositories>

然后在pom文件中增加如下插件:

  <plugin>
                <groupId>com.github.core-lib</groupId>
                <artifactId>xjar-maven-plugin</artifactId>
                <version>4.0.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>build</goal>
                        </goals>
                        <phase>install</phase>

<configuration>
                            <includes>
                                <include>/com/huc/**/*.class</include>
                                <include>/mapper/**/*Mapper.xml</include>
                                <include>/*.yml</include>
                            </includes>
                            <excludes>
                                <exclude>/templates/**.*</exclude>
                                <exclude>/static/**.*</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

这样,我们的准备工作就做完了,需要注意的是,includes代表我们想要加密的内容,采用的是Ant表达式,excludes代表的是不需要加密的内容,同样使用的Ant表达式。

一般情况下我们建议这两处内容必填,如果不填写,会加密整个jar包中的所有文件,这样其实是没有必要的,而且全部加密后启动的时候也可能产生意料之外的错误。

另外要说明的是,加密后的jar包是需要通过golang环境运行的,所以我们需要提前把golang的运行环境安装好,安装过程请自行百度。

开始加密

现在我们就开始正式的加密工作了,加密过程非常简单,只需要使用maven的install命令即可自动打包,命令如下:

  mvn clean install -Dxjar.password=password  -Dmaven.test.skip=true

这里的password可以自行指定密码,是必填项。

执行后就会得到两个文件:一个是xjar.go的go源文件,一个是你项目的xjar包,也就是加密后的jar包。

运行加密后的jar包

运行加密后的jar包是需要先编译xjar.go源文件生成jar包启动器的。编译方式如下:

 go build ./xjar.go

编译后会生成xjar.exe启动器(王子使用的是window系统,如果是linux系统就不是exe后缀了)。

之后使用如下命令即可运行加密后的jar包:

 ./xjar.exe java -jar ./**.xjar

可以看出,只是在使用java -jar的前边加上启动器即可,还是很方便的。

后记

防止反编译只能防止jar包被逆向破解,如果想要限制用户的使用时间,按时间付费需要怎么做呢?

这就要说到license加密技术了,我们下篇文章就来说说如何在你的项目中增加license,限制用户的使用。

(0)

相关推荐

  • springboot xjar进行加密

    由于业务需求所以需要把项目部署到客户那边,但是公司给我们的要求就是数据库要加密,代码要进行加密防止代码进行反编译,其实还是能够破解的但是时间很长,废话不多说了开始吧 1.在pom文件中假如属性和插件, ...

  • 对Springboot的jar加密:防止反编译

    XJar 对Springboot打包后的jar加密处理后,jd-gui已不能反编译成功 github地址:https://github.com/core-lib/xjar 1 pom <!-- ...

  • 用命令将本地jar包导入到本地maven仓库

    [前情提要]在日常开发过程中,我们总是不可避免的需要依赖某些不在中央仓库,同时也不在本地仓库中的jar包,这是我们就需要使用命令行将需要导入本地仓库中的jar包导入本地仓库,使得项目依赖本地仓库中的代 ...

  • Java系列---Maven插件(与maven的生命周期相关)

    一.Maven插件 各个插件的执行顺序一般是:1:clean.2:resources.3:compile.4:testResources.5:testCompile.6:test.7:jar.8:in ...

  • 电视墙如何设计简单又大方?最实用的5种方案,快收藏

    客厅作为一个家的门面,很多人都会把客厅好好装修布置一番,而电视墙作为客厅的中心,其重要性自然也就不言而喻. 其中就会有不少业主花重金在背景墙上,但其结果往往都是不尽如人意,因为对于普通家庭而言,一个& ...

  • 干货!几种实用的细纱机改造方案

    ▎01 设计新的驱动系统,自动化程度提高 A513型细纱机采用单电机,通过开式齿轮传动,保全工作量大,密封不好,易形成油污染:钢领板升降成型凸轮易磨损,产生冲击力,工艺调整不方便,已经无法满足当前纺纱 ...

  • 春节七天这样练,体重稳定精神足,超级实用的春节运动方案请收好【健康幸福过大年】(14)

    衣带渐紧终不悔 每逢佳节胖三斤 这既是一种调侃,也是一种无奈.忙碌一年,七天长假,欢度春节,本该是身心放松,大快朵颐的时候.然而,想到过完假期  肚子会不会大一圈,脸会不会又圆了  ,猛然间纠结到不能 ...

  • Python 如何正确调用 jar 包加密,得到加密值?

    前言 在做接口自动化的时候,经常会遇到一些参数是需要加密的,比如密码参数. 加密规则一般开发也不愿意告诉你,会直接给你一个jar包,让你调用jar包得到加密值,在jmeter上是可以直接引用jar包的 ...

  • 最全最实用的母猪保健方案

    最全最实用的母猪保健方案 母猪最容易发生疾病的时期是产前产后,特别是夏天炎热季节,分娩母猪最容易得病,故做好母猪的保健工作非常重要. 最全最实用的母猪保健方案 (一)母猪产前产后的保健 1.目的: 调 ...

  • 根据反应机理开发实用的废塑料处理方案

    塑料是大宗消费品,随着塑料污染加剧和石油资源短缺,塑料废物处理迫在眉睫.塑料回收再用可以最大限度地减少石油消耗和温室气体排放.聚对苯二甲酸乙二醇酯(PET)是由对苯二甲酸(TPA)和乙二醇(EG)直接 ...

  • 实用干货 | 挂靠施工几大常见纠纷及应对方案

    在建设工程领域,挂靠是法律明令禁止的行为,但实际上挂靠行为可以说非常普遍.广义上讲,挂靠应该分为"资质挂靠"与"证件挂靠",两者皆是行业公开的秘密,如果彻查起来 ...

  • 40岁女人服装色彩比款式更重要,四种实用配色方案,有品位更高级

    服装的面料虽然众多,但远不及色彩那样宽泛又纷繁复杂.只有在服装的色彩上选对了,才能具备更高级的风格.四十岁的女性若是在配色上面仍然没有摸清套路,不妨尝试这四种配色窍门,很容易上手又显档次. 1.同色组 ...

  • 实用干货 | 结算工程款时常见的四大问题及应对方案

    在工程款纠纷案件中,大多数纠纷都产生在结算阶段,无论是已经产生纠纷还是未产生纠纷,了解到结算时甲乙双方最常见的问题以及解决方案都有重要意义. 为了让广大工程人能够提前规避结算工程款的风险,或者在遇到问 ...