数据安全一直以来是我们所追求的目标,开发的项目部署上线,有时也面临着被不法份子滥用牟利,这时我们就需要一套加密混淆软件为我们的数据、代码安全保驾护航。ProGuard就是众多混淆工具中使用较为广泛的一个。
ProGuard是一个压缩、优化和混淆Java字节码文件的免费的工具,它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。常常在项目开发的最终用于混淆项目,增加项目被反编译的难度。
混淆工具,顾名思义只能做混淆,并不能做到真正的加密,只是增加项目被反编译的难度
springboot+maven项目使用ProGuard加密工具加密的过程如下:
-
在springboot项目的pom.xml文件中,引入插件相关依赖
<build> <plugins> <plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.14</version> <executions> <execution> <!--混淆时刻,这里是打包的时候混淆--> <phase>package</phase> <goals> <!--使用插件的什么功能,当然是混淆--> <goal>proguard</goal> </goals> </execution> </executions> <configuration> <!--是否将生成的PG文件安装部署--> <attach>true</attach> <!--是否混淆--> <obfuscate>true</obfuscate> <!--指定生成文件分类--> <attachArtifactClassifier>pg</attachArtifactClassifier> <options> <!--JDK目标版本1.8--> <option>-target 1.8</option> <!--压缩是默认开启的。压缩会删除没有使用的类以及类成员,除了由各种“-keep”选项列出的类和它们直接或间接依赖的类--> <!--关闭收缩--> <option>-dontshrink</option> <!--优化是默认情况下启用的;。所有方法都在字节码级进行优化--> <!--关闭优化(变更代码实现逻辑)--> <option>-dontoptimize</option> <!--不路过非公用类文件及成员--> <option>-dontskipnonpubliclibraryclasses</option> <option>-dontskipnonpubliclibraryclassmembers</option> <!--优化时允许访问并修改有修饰符的类和类的成员--> <option>-allowaccessmodification</option> <!--以指定文件夹中的定义格式混淆命名,自定义一个filename.txt文件用来存放你自己想要的命名规则--> <option