赞
踩
在开发项目时,我们不希望自己的代码被别人抄袭,但是 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
- java -jar classfinal-fatjar.jar -file test.jar -libjars a.jar,b.jar -packages com.demo -exclude com.demo.Main -pwd 1qaz -Y
-
-
- 参数说明
- -file 加密的jar/war完整路径
- -packages 加密的包名(可为空,多个用","分割)
- -libjars jar/war包lib下要加密jar文件名(可为空,多个用","分割)
- -cfgfiles 需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)
- -exclude 排除的类名(可为空,多个用","分割)
- -classpath 外部依赖的jar目录,例如/tomcat/lib(可为空,多个用","分割)
- -pwd 加密密码,如果是#号,则使用无密码模式加密
- -code 机器码,在绑定的机器生成,加密后只可在此机器上运行
- -Y
注意:packages 这个参数必须指定!
生成的 test-encrypted.jar 就是加密后的文件,加密后的文件不可直接执行,需要配置 javaagent。
在pom.xml中加入以下插件配置:
- <plugin>
- <!-- https://gitee.com/roseboy/classfinal -->
- <groupId>net.roseboy</groupId>
- <artifactId>classfinal-maven-plugin</artifactId>
- <version>${classfinal.version}</version>
- <configuration>
- <password>1qaz</password><!--加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码-->
- <packages>com.demo</packages>
- <cfgfiles>application.yml</cfgfiles>
- <excludes>org.spring</excludes>
- <libjars>a.jar,b.jar</libjars>
- </configuration>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>classFinal</goal>
- </goals>
- </execution>
- </executions>
- </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商户系统功能
以下截图是从实际已完成功能界面截取
扫码关注本号,后台回复 支付
扫码关注本号,后台回复 支付
持续关注本号,分享更多项目源码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。