java项目jar包加密混淆防反编译 - 版本授权第1步

java | 2022-03-14 11:06:40

公司的项目是需要部署到客户的服务器的,那么就需要考虑版本授权的问题了。这里不考虑源码泄露的问题,源码被偷和钱被偷是一样的道理,找证据报警起诉,所以这里不考虑这种情况。

那么我们只需要考虑下面的几点

1.license控制,必须要有license才能使用系统

2.授权码要有期限信息,比如只能使用一个月

3.授权码要有用户数量限制,比如只能100个用户使用

4.要防止jar反编译,被反编译了,等于源码都差不多在人家手里了

 

版本授权第1步 jar包混淆加密防止反编译

了解过proguard和classfinal,这里使用classfinal

只需要在pom配置

	<build>
		<finalName>service</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>net.roseboy</groupId>
				<artifactId>classfinal-maven-plugin</artifactId>
				<version>1.2.1</version>
				<configuration>
					<password>#</password>
					<packages>com.roncoo.education.course.common</packages>
				</configuration>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>classFinal</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

		</plugins>
	</build>

 

然后启动的方式改为

java -javaagent:service-encrypted.jar -jar service-encrypted.jar

我没有配置密码,每次启动需要配置密码麻烦,没有必要。只要做防混淆。

然后下一步做license控制使用时间就可以了。

 

登录后即可回复 登录 | 注册
    
关注编程学问公众号