我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java Class加密工具ClassFinal怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java Class加密工具ClassFinal怎么使用

本篇内容主要讲解“Java Class加密工具ClassFinal怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Class加密工具ClassFinal怎么使用”吧!

Jar包加密工具 ClassFinal

介绍

  • ClassFinal 是一款 java class 文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译。

  • 加密后,原始的class文件中方法体被清空,当class被classloader加载时,真正的方法体会被解密注入。

  • 为兼容spring,swagger等扫描注解的框架,故而保留了方法参数、注解等信息;反编译者只能看到方法名和注解;

  • 注意:为了保证项目在运行时的安全,启动jvm时请加参数: -XX:+DisableAttachMechanism 。

此参数的含义是禁用JVM的附加机制。在JVM中,有一个附加机制可以让外部进程通过Java Debug Wire Protocol(JDWP)协议附加到正在运行的Java进程上,从而获得进程的调试信息。这个机制在调试和诊断Java应用程序时非常有用。
然而,在某些情况下,禁用这个机制可以提高Java应用程序的安全性。例如,如果您希望限制外部进程对正在运行的Java进程的访问,或者想要确保Java进程不会被未经授权的用户附加和调试,您可以使用这个参数来禁用JVM的附加机制。当使用这个参数时,JVM将不再响应任何附加请求,从而防止外部进程通过JDWP协议附加到正在运行的Java进程上。
例:java -XX:+DisableAttachMechanism -jar MyApp.jar

环境依赖

JDK 1.8 +

使用说明

下载

点此下载

加密 命令行

执行以下命令

java -jar classfinal-fatjar.jar -file jerry.jar -libjars a.jar,b.jar -packages com.jerry1,com.jerry2 -exclude com.jerry.Main -pwd 123456 -Y

参数说明
-file        加密的jar/war完整路径
-packages    加密的包名(可为空,多个用","分割)
-libjars     jar/war包lib下要加密jar文件名(可为空,多个用","分割)
-cfgfiles    需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)
-exclude     排除的类名(可为空,多个用","分割)
-classpath   外部依赖的jar目录,例如/tomcat/lib(可为空,多个用","分割)
-pwd         加密密码,如果是#号,则使用无密码模式加密
-code        机器码,在绑定的机器生成,加密后只可在此机器上运行
-Y           无需确认,不加此参数会提示确认以上信息

结果: 生成加密后的jar文件 jerry-encrypted.jar。执行时需带 javaagent 参数。

注: 也可以直接执行 java -jar classfinal-fatjar.jar 以交互式操作。

示例

我的jar包:jerry.jar,密码123456

java -jar classfinal-fatjar-1.2.1.jar -file jerry.jar -packages com.jerry -pwd 123456 -Y==========================================================                                                       ==      Java Class Encryption Tool v1.2.1   by Mr.K      ==                                                       ==========================================================加密信息如下:-------------------------1. jar/war路径:      jerry.jar2. lib下的jar:3. 包名前缀:          com.jerry4. 排除的类名:5. 加密配置文件:6. ClassPath:7. 密码:             1234568. 机器码:-------------------------处理中...加密完成,请牢记密码!==>jerry-encrypted.jar

maven插件方式

在要加密的项目pom.xml中加入以下插件配置,目前最新版本是:1.2.1。

    <build>        <finalName>${project.artifactId}</finalName>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>            <plugin>                <!-- https://gitee.com/roseboy/classfinal -->                <groupId>net.roseboy</groupId>                <artifactId>classfinal-maven-plugin</artifactId>                <version>1.2.1</version>                <configuration>                    <!-- 加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码-->                    <password>jerry</password>                    <!-- 需要加密的包。多个以逗号,分割 -->                    <packages>com.classfinal</packages>                    <!-- 需要加密的配置文件。多个以逗号,分割 -->                    <cfgfiles>bootstrap.yml,application.yml</cfgfiles>                    <!-- 不想要加密的jar包。多个以逗号,分割 -->                    <excludes>org.spring</excludes>                    <!-- 加密依赖的第三方jar包。多个以逗号,分割 -->                    <libjars>jerry-common-core-0.0.1.jar,jerry-common-redis-0.0.1.jar</libjars>                </configuration>                <executions>                    <execution>                        <phase>package</phase>                        <goals>                            <goal>classFinal</goal>                        </goals>                    </execution>                </executions>            </plugin>        </plugins>    </build>

运行mvn package时会在target下自动加密生成yourpaoject-encrypted.jar
maven 插件的参数名称与直接运行的参数相同,请参考上节的参数说明。

无密码模式

  • 加密时-pwd参数设为#,启动时可不用输入密码;

  • 如果是war包,启动时指定参数 -nopwd,跳过输密码过程。

机器绑定

机器绑定只允许加密的项目在特定的机器上运行;
加密时用 -code 指定机器码。机器绑定可同时支持机器码+密码的方式加密。
在需要绑定的机器上执行以下命令,生成机器码

java -jar classfinal-fatjar.jar -C

启动加密后的jar

加密后的项目需要设置 javaagent来启动,项目在启动过程中解密class,完全内存解密,不留下任何解密后的文件。

解密功能已经自动加入到 yourpaoject-encrypted.jar 中,所以启动时 -javaagent-jar 相同,不需要额外的jar包。

密码读取顺序:
参数获取 >> 环境变量获取 >> 密码文件获取 >> 控制台输入 >> GUI输入 >> 退出

启动参数给密码

启动jar项目执行以下命令:注意:如果是win系统 "-pwd 0000000" 这里要用双引号。

java -javaagent:jerry-encrypted.jar="-pwd 0000000" -jar jerry-encrypted.jar//参数说明// -pwd      加密项目的密码  // -pwdname  环境变量中密码的名字

不加密码参数直接启动

1. 密码文件获取
java -javaagent:yourpaoject-encrypted.jar -jar yourpaoject-encrypted.jar

不加 pwd 参数直接启动,优先从密码文件读取。
在同级目录下的classfinal.txtjerry-encrypted.classfinal.txt中写入密码。

直接给密码:classfinal.txt

123456

参数化配置启动后删除:classfinal.txt

--pwd 123456 --del yes

这里的del只要不给falseno都会删除。

项目读取到密码后会清空此文件。

2. 交互输入

没有找到 密码文件 就会进入交互输入模式:先控制台输入还是没给密码就会进入 GUI输入模式,都不给密码,就报错退出了。

控制台输入

Java Class加密工具ClassFinal怎么使用

GUI输入

Java Class加密工具ClassFinal怎么使用

到此,相信大家对“Java Class加密工具ClassFinal怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java Class加密工具ClassFinal怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java Class加密工具ClassFinal怎么使用

本篇内容主要讲解“Java Class加密工具ClassFinal怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Class加密工具ClassFinal怎么使用”吧!Jar包加密
2023-07-05

使用Java怎么实现一个3des加密解密工具类

这期内容当中小编将会给大家带来有关使用Java怎么实现一个3des加密解密工具类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:package com.gcloud.common;import o
2023-05-30

利用Java怎么编写一个DES加密解密工具类

今天就跟大家聊聊有关利用Java怎么编写一个DES加密解密工具类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。DesUtil.javapackage lsy;import java.
2023-05-31

shell脚本加密工具shc使用详解

shell脚本加密工具shcshc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件.应用场景 用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.但shell脚本是可读写的,很有可能会泄露敏
2022-06-04

使用shc工具加密shell脚本详解

Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x结束),另一个是C语言的原文件(文件名以
2022-06-04

如何使用shc工具加密shell脚本

本篇内容主要讲解“如何使用shc工具加密shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用shc工具加密shell脚本”吧!Shc可以用来对shell脚本进行加密,可以将she
2023-06-09

Java的keytool工具怎么使用

这篇文章主要介绍“Java的keytool工具怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java的keytool工具怎么使用”文章能帮助大家解决问题。一、keytool的概念  keyt
2023-06-29

Java的javap工具怎么使用

这篇文章主要讲解了“Java的javap工具怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java的javap工具怎么使用”吧!一:简介javap是JDK自带的反汇编器,可以查看ja
2023-06-02

Java的Classpath工具怎么使用

这篇文章主要介绍“Java的Classpath工具怎么使用”,在日常操作中,相信很多人在Java的Classpath工具怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的Classpath工具怎
2023-06-03

Java工具类RelativeDateFormat怎么使用

要使用Java工具类RelativeDateFormat,您可以按照以下步骤进行操作:1. 下载RelativeDateFormat.java文件,或者复制其代码到您的Java项目中。2. 在您的Java类中,导入RelativeDateF
2023-10-20

加密连接工具Cryptcat有什么用

这篇文章主要介绍了加密连接工具Cryptcat有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。加密连接工具CryptcatCryptcat是网络工具Netcat的加密版
2023-06-04

怎么使用Java工具类库hutool

本篇内容介绍了“怎么使用Java工具类库hutool”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介Hutool是Hu + tool的自造
2023-06-16

怎么使用java构建工具gradle

本篇内容主要讲解“怎么使用java构建工具gradle”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用java构建工具gradle”吧!  现在我们都在谈领域驱动设计,Gradle本身的领
2023-06-25

Java中的工具Jstack怎么使用

本篇内容介绍了“Java中的工具Jstack怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!jstack - Prints Java
2023-06-30

Hutool Java工具类库_ExcelUtil怎么使用

这篇文章主要介绍“Hutool Java工具类库_ExcelUtil怎么使用”,在日常操作中,相信很多人在Hutool Java工具类库_ExcelUtil怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
2023-06-21

怎么通过Golang编写一个AES加密解密工具

本篇内容主要讲解“怎么通过Golang编写一个AES加密解密工具”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么通过Golang编写一个AES加密解密工具”吧!AES加密介绍及实现原理AES(
2023-06-30

GPP加密破解工具gpp-decrypt有什么用

这篇文章主要介绍了GPP加密破解工具gpp-decrypt有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。GPP加密破解工具gpp-decryptGPP是Group P
2023-06-04

Java本地缓存工具LoadingCache怎么使用

这篇文章主要介绍“Java本地缓存工具LoadingCache怎么使用”,在日常操作中,相信很多人在Java本地缓存工具LoadingCache怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java本
2023-06-22

Java全能工具类之Hutool怎么使用

本篇内容主要讲解“Java全能工具类之Hutool怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java全能工具类之Hutool怎么使用”吧!Hutool简介Hutool是一个Java工
2023-07-05

Java构建工具gradle怎么安装使用

本文小编为大家详细介绍“Java构建工具gradle怎么安装使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java构建工具gradle怎么安装使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。学习Java的
2023-06-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录