当前位置:   article > 正文

推荐一款好用的代码混淆工具,安全系数爆表了,再也不担心代码被抄袭 !(带私活源码)_class 文件混淆

class 文件混淆

在开发项目时,我们不希望自己的代码被别人抄袭,但是 Java 开发的项目可以被反编译,我们可以用代码混淆的方式来解决。Java 代码混淆就是为了保护 Java 源代码,对编译好的 class 文件进行混淆处理。

常见的加密方式:

对 class 文件的字节码完全加密

对 class 文件混淆:字节码混淆,比如对类名、变量名、方法名进行替换。

今天给大家推荐一款好用的代码混淆工具 -- classfinal。

项目简介

ClassFinal 是 java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework。

基于 -agentJava:xxx.jar 这一原理,加密时对 class 文件做了两次处理,一次是对 class 文件的字节码完全加密,一次是对 class 文件混淆,这个混淆是保留成员和方法,对方法内部实现进行隐藏;解密时,判断如果该类是自己加密过的,找到完全加密的字节码进行解密,如果不是自己加密的就跳过。其对 class 文件混淆,就是方便类似 SpringBoot 等三方框架直接分析 class 文件。

项目特性

  • 不用修改源代码,直接对 jar 或者 war 包进行加密

  • 支持普通 jar 包、springboot jar 包以及 java web 项目编译的 war 包。

  • 支持 maven 插件,在打包过程中直接加密。

  • 支持加密配置文件

  • 支持指定机器,加密后 jar 或者 war 只能在指定机器上运行

  • 加密后文件通过 jd-gui 或者 IDE 打开后是空文件或者是空方法

项目使用

下载项目

https://repo1.maven.org/maven2/net/roseboy/classfinal-fatjar/1.2.1/classfinal-fatjar-1.2.1.jar

加密jar包

  1. java -jar classfinal-fatjar.jar -file test.jar -libjars a.jar,b.jar -packages com.demo -exclude com.demo.Main -pwd 1qaz -Y
  2. 参数说明
  3. -file        加密的jar/war完整路径
  4. -packages    加密的包名(可为空,多个用","分割)
  5. -libjars     jar/war包lib下要加密jar文件名(可为空,多个用","分割)
  6. -cfgfiles    需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)
  7. -exclude     排除的类名(可为空,多个用","分割)
  8. -classpath   外部依赖的jar目录,例如/tomcat/lib(可为空,多个用","分割)
  9. -pwd         加密密码,如果是#号,则使用无密码模式加密
  10. -code        机器码,在绑定的机器生成,加密后只可在此机器上运行
  11. -Y   

注意:packages 这个参数必须指定!

生成的 test-encrypted.jar 就是加密后的文件,加密后的文件不可直接执行,需要配置 javaagent。

图片

maven 插件加密

在pom.xml中加入以下插件配置:

  1. <plugin>
  2.     <!-- https://gitee.com/roseboy/classfinal -->
  3.     <groupId>net.roseboy</groupId>
  4.     <artifactId>classfinal-maven-plugin</artifactId>
  5.     <version>${classfinal.version}</version>
  6.     <configuration>
  7.         <password>1qaz</password><!--加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码-->
  8.         <packages>com.demo</packages>
  9.         <cfgfiles>application.yml</cfgfiles>
  10.         <excludes>org.spring</excludes>
  11.         <libjars>a.jar,b.jar</libjars>
  12.     </configuration>
  13.     <executions>
  14.         <execution>
  15.             <phase>package</phase>
  16.             <goals>
  17.                 <goal>classFinal</goal>
  18.             </goals>
  19.         </execution>
  20.     </executions>
  21. </plugin>

加密文件启动

加密后的项目需要设置 javaagent 来启动,并且要指定密码。

java -javaagent:test-encrypted.jar -jar test.jar

启动后在控制台里输入密码。

总结

ClassFinal 是一款不错的文件加密方式,使用起来很方便,不需要改动源代码,有了它在也不担心代码被抄袭了!感兴趣的小伙伴赶快下载试试吧~

项目地址:https://gitee.com/roseboy/classfinal

写在最后(私活源码)

项目介绍

Jeepay是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。已对接微信支付,支付宝,云闪付官方接口,支持聚合码支付。

Jeepay使用Spring Boot和Ant Design Vue开发,集成Spring Security实现权限管理功能,是一套非常实用的web开发框架。

项目特点

· 支持多渠道对接,支付网关自动路由

· 已对接微信服务商和普通商户接口,支持V2和V3接口

· 已对接支付宝服务商和普通商户接口,支持RSA和RSA2签名

· 已对接云闪付服务商接口,可选择多家支付机构

· 提供http形式接口,提供各语言的sdk实现,方便对接

· 接口请求和响应数据采用签名机制,保证交易安全可靠

· 系统安全,支持分布式部署,高并发

· 管理端包括运营平台和商户系统

· 管理平台操作界面简洁、易用

· 支付平台到商户系统的订单通知使用MQ实现,保证了高可用,消息可达

· 支付渠道的接口参数配置界面自动化生成

· 使用spring security实现权限管理

· 前后端分离架构,方便二次开发

· 由原XxPay团队开发,有着多年支付系统开发经验

系统架构

Jeepay计全支付系统架构图

图片

核心技术栈

软件名称

描述

版本

Jdk

Java环境

1.8

Spring Boot

开发框架

2.4.5

Redis

分布式缓存

3.2.8 或 高版本

MySQL

数据库

5.7.X 或 8.0 高版本

MQ

消息中间件

ActiveMQ 或 RabbitMQ 或 RocketMQ

Ant Design Vue

Ant Design的Vue实现,前端开发使用

2.1.2

MyBatis-Plus

MyBatis增强工具

3.4.2

WxJava

微信开发Java SDK

4.1.0

Hutool

Java工具类库

5.6.6

开发部署

· 系统开发:https://docs.jeequan.com/docs/jeepay/dev_serv

· 通道对接:https://docs.jeequan.com/docs/jeepay/dev_channel

· 线上部署:https://docs.jeequan.com/docs/jeepay/deploy

· 接口文档:https://docs.jeequan.com/docs/jeepay/payment_api

功能模块

Jeepay运营平台功能

图片

Jeepay商户系统功能

图片

系统截图

以下截图是从实际已完成功能界面截取

图片

图片

图片

图片

图片

图片

图片

图片

开源地址

扫码关注本号,后台回复 支付

扫码关注本号,后台回复 支付

持续关注本号,分享更多项目源码

 

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

闽ICP备14008679号