Java代码加扰混淆全指南

为什么需要对java程序进行加扰混淆

Java文件编译后会生成class文件,但这些class文件很容易被反编译。反编译后的代码可读性极高,这不利于保护知识产权。特别是在某些特殊行业中,若需要对协议进行保护以避免被竞争对手破解,这种特性就带来了安全隐患。

反编译前代码:

反编译后:

通过对比两张图可以看出,反编译后的代码与原始源代码几乎完全一致。

如何对Java程序进行代码混淆以降低反编译后的可读性?对于Maven工程,可以使用proguard-maven-plugin插件来实现代码混淆功能。

proguard-maven-plugin插件配置

在 Maven 工程的 pom.xml 文件中,在 build -> plugins 标签内添加以下配置内容:

<build>

		<plugins>
			<plugin>
				<groupId>com.github.wvengen</groupId>
				<artifactId>proguard-maven-plugin</artifactId>
				<version>2.7.0</version>
				<executions>
					<execution>
						<!--混淆时刻,这里是打包的时候混淆-->
						<phase>install</phase>
						<goals>
							<goal>proguard</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<injar>${project.artifactId}-${project.version}.jar</injar>
					<outjar>${project.artifactId}-${project.version}.jar</outjar>
					<!-- 是否混淆 默认是true -->
					<obfuscate>true</obfuscate>
					<!-- 配置一个文件,通常叫做proguard.cfg,该文件主要是配置options选项 -->
					<proguardInclude>${project.basedir}/proguard.cfg</proguardInclude>
					<!--添加依赖-->
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值