最近公司项目在搞上线,由于是政务项目,第三方服务器上很多家公司都可以访问,领导要求对自己公司的核心业务源代码进行加密。于是最近在网上找这些资料,之前看了下Proguard这个工具,但是我这边一直没有测试成功,而且多模块一直有问题。最终在github上找到了一款 xjar代码加密 工具,效果感觉还不错。基本满足我们现在目前的需求。工具主要使用如下:

#xjar代码加密
#加密代码以及jar包都在doc下
1.将自己的项目进行打包
2 、jar包版本 xjar-4.0.1.jar loadkit-v1.0.0.jar  commons-compress-1.18.jar  准备, 由于这个是核心依赖包, maven仓库中没有,需要在自己本地安装:
mvn install:install-file -Dfile="D:\NEW-WORK\commons-compress-1.18.jar" -DgroupId=org.apache.commons -DartifactId=commons-compress -Dversion=1.18 -Dpackaging=jarmvn install:install-file -Dfile="D:\NEW-WORK\loadkit-v1.0.0.jar" -DgroupId=com.github.core-lib -DartifactId=loadkit -Dversion=v1.0.0  -Dpackaging=jarmvn install:install-file -Dfile="D:\NEW-WORK\xjar-4.0.1.jar" -DgroupId=com.github.core-lib -DartifactId=xjar -Dversion=4.0.1 -Dpackaging=jar注意:-Dfile :为自己放置jar包的路径
3. 随便新建一个maven工程 引入 第二步的三个jar包:
 例如: <dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.18</version></dependency><dependency><groupId>com.github.core-lib</groupId><artifactId>loadkit</artifactId><version>v1.0.0</version></dependency><dependency><groupId>com.github.core-lib</groupId><artifactId>xjar</artifactId><version>4.0.1</version></dependency>
4. 在第三步的项目中新建一个 类: EncryptMain.java (调整自己的加密类的路径信息等 直接运行main方法)
package com.example.demo.encrypt;import io.xjar.XCryptos;/*** @author :yulang* @Date : 2021/7/15 11:15 代码加密类* @Version : 1.0.0**/
public class EncryptMain {/*** 代码加密使用的秘钥**/private final static String ENCRYPTSECRET ="abahaj@123455";/*** 加密后输出的 文件路径**/private final  static String TARGETFILEURL ="D:\\NEW-WORK\\\target\\encrypt-demo.jar";/*** 原始项目的jar包(通过maven打包的文件路径)**/private final static String ORIGINILEURL="D:\\NEW-WORK\\target\\demo.jar";/***  include: 如要加密的类路径*  exclude: 排除那些不需要加密的* @Date: 2021/3/10 14:33* @Version: 1.0.0**/public static void main(String[] args) throws Exception {XCryptos.encryption().from(ORIGINILEURL).use(ENCRYPTSECRET).include("com/edwin/eic/**/service/**.class").include("com/edwin/eic/**/controller/**.class").include("com/edwin/eic/**/service/impl/**.class").include("com/edwin/eic/**/mapper/**.class").include("com/edwin/eic/core/**/**.class")// 启动类.exclude("com/edwin/eic/Application.class")//配置文件 yaml.exclude("/config/**")// mapper文件.exclude("/mapper/**").to(TARGETFILEURL);}
}

5、 运行加密类的main 方法,会在输出目录生成2个文件encrypt-demo.jar: 加密后的可执行文件  (使用 jd-gui 工具检查是否加密)xjar.go 加密文件
6、需要安装go的环境进行编译 (https://studygolang.com/dl 下载直接安装 我现在的是Windows 版本的,安装直接点下一步,安装完成配置环境变量,跟配置jdk一样), 在第五步目录下 ,进入命令行执行: go build xjar.go 编译完以后会生成  xjar.exe文件

配置成功 cmd 输入:go

7、使用 xjar.exe  java  -jar encrypt-demo.jar 验证项目是否能够正常启动,接口是够能够正常使用 

加密需要使用的三个加包

loadkit-v1.0.0.jar
xjar.zip
xjar-4.0.1.jar

链接:https://pan.baidu.com/s/1d-u7tnr8CO_BuPFI3oPqxQ 
提取码:eukw

java项目代码加密相关推荐

  1. java springBoot项目代码加密总结

    项目需要向外出售,涉及到版权问题需要进行代码加密.两周时间最终实现了对核心的一个package内的代码进行加密.还未实现对带有spring注解的类进行加密,但是以现在的技术积淀应该没有什么大的问题就可 ...

  2. 优秀的 Java 项目代码都是如何分层的?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://rrd.me/ej56f 1.背景 2.如何进 ...

  3. Java项目代码依赖包安全漏洞检测插件Dependency Check

    最近在搞Java的后端项目,需要更新jar依赖包,找到了一个jar包漏洞检测的插件Dependency Check. Dependency-Check是OWASP(Open WebApplicatio ...

  4. 前端项目代码加密教程

    序 我们都知道,浏览器上是可以看到前端的html和js代码的,所以如果遇到隐私心比较强的老板,你就冷不丁的会接受到一个代码加密的需求,当接受到这个需求的时候你怎么完成?那我希望我的这篇博客可以帮助到你 ...

  5. JAVA项目代码手写吗_一个老程序员是如何手写Spring MVC的

    见人爱的Spring已然不仅仅只是一个框架了.如今,Spring已然成为了一个生态.但深入了解Spring的却寥寥无几.这里,我带大家一起来看看,我是如何手写Spring的.我将结合对Spring十多 ...

  6. Java工程师面试题及答案,人机猜拳Java项目代码

    简介 基于SpringCloud(Hoxton.SR1) + SpringBoot(2.2.4.RELEASE) 的 SaaS型微服务脚手架,具备用户管理.资源权限管理.网关统一鉴权.Xss防跨站攻击 ...

  7. 小码农也有大梦想!人机猜拳java项目代码

    选择 在现在这个浮躁而又拜金的社会,我相信很多人做技术并非出于热爱,只是被互联网的高薪吸引,毕竟技术岗位非常枯燥,不仅要面对奇奇怪怪的需求,还要不停的充实自己避免被淘汰.所以想要吃好技术这碗饭并不容易 ...

  8. 基于C/C++实现 java项目工程加密安全防范

    工程加密 场景介绍 实现思路 使用 微信/手机同号:13524503122 场景介绍 为什么要加密?加密可以防止代码被窃取(who?),它重要吗?可以说重要也可以说不重要,主要看你觉的它是否重要.加密 ...

  9. Java项目代码结构

    事故背景 公司最近安排了一波商品抢购活动,由于后台小哥操作失误最终导致活动效果差,被用户和代理商投诉了.经理让我带同事们一起复盘这次线上事故. 什么原因造成的? 抢购活动计划是零点准时开始, 22:0 ...

  10. java 静态扫描_静态代码扫描工具 – (八)- 扫描Java项目

    静态代码扫描工具 – (八)- 扫描Java项目 1.准备好Java项目代码 只要是java语言实现的项目均可. 比如,自动化测试的代码,测试平台等均可以. 本次案例,使用java语言实现的测试平台来 ...

最新文章

  1. C语言博客作业05--指针
  2. 下取整函数的含义_Excel将3.14159取值为3.15或3.1415? 两个函数为你效劳,拿走不谢...
  3. 互联网账户系统如何设计
  4. php访问多重数组,PHP实现删除多重数组对象属性并重新赋值的方法
  5. SharingSphere 源码解析 -- 真实SQL生成探索
  6. 注意了,这些数值计算的坑千万别踩!
  7. 推荐系统数据稀疏性问题
  8. 【干货】李航老师《统计学习方法》(第2版)清华PPT课件分享
  9. 去哪儿网机票搜索系统的高并发架构设计
  10. html 组件化 编辑器,纯前端表格控件SpreadJS V14.0发布:组件化编辑器+数据透视表...
  11. PPT过大怎么压缩?这种方法务必收藏
  12. 自定义刻度尺进度条总结
  13. 干货!____UI设计中那些创意的图标怎么做
  14. 自定义注解,实现业务处理
  15. adb卸载和安装系统应用
  16. List的toArray方法强制转换
  17. vbox虚拟机无法桥接网卡怎么办
  18. css3实现向一个方向无缝连接滚动
  19. Unity制作RPG游戏——按键功能的分类与实现
  20. 飞机躲避小游戏---是男人就撑100秒的制作

热门文章

  1. 计算机 服装生产管理的变化,服装生产与管理服装生产管理概述.ppt
  2. iwemeta元宇宙:阿里首任COO:如何打造销售铁军
  3. c 语言翻译软件,分享一款 程序员秒懂 很优雅的翻译软件
  4. 如何解决打印机卡纸问题 以HP LaserJet 5100 机型为例清除故障
  5. 免费建站网站分享,最好的自助建站
  6. Ubuntu的各种软件下载和安装命令
  7. div半透明背景,文字不透明
  8. ECSHOP二次开发之给商品增加新字段
  9. fc安卓模拟器_跨平台游戏模拟器RetroArch,一个软件畅玩FC 、MD、SFC、GBA游戏
  10. 软件工程__CMMCMMI